groupJoin()

The groupJoin linq operator returns a new linq object that contains a "left outer" join of the elements of the originating collection (considered the "outer" collection) and the "inner" collection. The "inner"
collection can be anything that the linq.from() method will accept (e.g., an array, a linq object, etc.). The
groupJoin operator requires "key selector" functions for both the "outer" and "inner" collections.

The groupJoin operator also requires a "result selector" function that converts the joined results into the final results of the join operation. The result selector is a function that takes as parameters (1) the outer object (of the join) and
(2) an array of the joined inner objects (this array will be empty if there are no inner elements associated with the outer element).

The groupJoin operator can also take a "key comparer" function that is used to compare the projected keys for equality.