Correlates the elements of that sequence and another based on matching keys.

var createPerson = function(name) {
    return {
        name: name
    };
};

var createPet = function(name, owner) {
    return {
        name: name,
        owner: owner
    };
};

var persons = [
    createPerson("Tanja"),
    createPerson("Marcel"),
    createPerson("Yvonne"),
    createPerson("Josefine")
];

var pets = [
    createPet("Gina", persons[1]),
    createPet("Schnuffi", persons[1]),
    createPet("Schnuffel", persons[2]),
    createPet("WauWau", persons[0]),
    createPet("Lulu", persons[3]),
    createPet("Asta", persons[1])
];

// [0] 'Owner: Tanja; Pet: WauWau'
// [1] 'Owner: Marcel; Pet: Gina'
// [2] 'Owner: Marcel; Pet: Schnuffi'
// [3] 'Owner: Marcel; Pet: Asta'
// [4] 'Owner: Yvonne; Pet: Schnuffel'
// [5] 'Owner: Josefine; Pet: Lulu'
Enumerable.fromArray(persons)
          .join(pets,
                'person => person.name',
                'pet => pet.owner.name',
                function(person, pet) {
                    return 'Owner: ' + person.name + '; Pet: ' + pet.name;
                });