• Performs an inner join by correlating the elements of two sequences based on matching keys.

    Type Parameters

    • TOuter
    • TInner
    • TKey
    • TResult

    Parameters

    • outer: Iterable<TOuter>

      The first sequence to join.

    • inner: Iterable<TInner>

      The second sequence to join to the first.

    • outerKeySelector: (item: TOuter) => TKey

      A function to extract the join key from each element of the first sequence.

    • innerKeySelector: (item: TInner) => TKey

      A function to extract the join key from each element of the second sequence.

    • resultSelector: (item: TOuter, inner: TInner) => TResult

      A function to create a result element from two matching elements.

    • OptionalequalityComparer: EqualityComparer<TKey>

      A function to compare keys.

    Returns IEnumerable<TResult>

    An Enumerable that has elements of type TResult that are obtained by performing an inner join on two sequences.

    const magnus = { name: 'Magnus' };
    const terry = { name: 'Terry' };
    const adam = { name: 'Adam' };
    const john = { name: 'John' };

    const barley = { name: 'Barley', owner: terry };
    const boots = { name: 'Boots', owner: terry };
    const whiskers = { name: 'Whiskers', owner: adam };
    const daisy = { name: 'Daisy', owner: magnus };
    const scratchy = { name: 'Scratchy', owner: { name: 'Bob' } };

    const people = from([magnus, terry, adam, john]);
    const pets = from([barley, boots, whiskers, daisy, scratchy]);

    const result = join(
    people,
    pets,
    person => person,
    pet => pet.owner,
    (person, pet) => ({ ownerName: person.name, pet: pet.name })
    )
    .toArray();

    expect(result).toEqual([
    { ownerName: 'Magnus', pet: 'Daisy' },
    { ownerName: 'Terry', pet: 'Barley' },
    { ownerName: 'Terry', pet: 'Boots' },
    { ownerName: 'Adam', pet: 'Whiskers' }
    ]);

    TOuter The type of the elements of the first sequence.

    TInner The type of the elements of the second sequence.

    TKey The type of the keys returned by the key selector functions.

    TResult The type of the result elements.