> For the complete documentation index, see [llms.txt](https://soufatn.gitbook.io/rxjs-book/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://soufatn.gitbook.io/rxjs-book/summary/observable/observable_instance_methods/groupjoin.md).

# groupJoin

Correlates the elements of two sequences based on overlapping durations, and groups the results.

## Arguments

1. `right` *(`Observable`)*: The right observable sequence to join elements for.
2. `leftDurationSelector` *(`Function`)*: A function to select the duration (expressed as an observable sequence) of each element of the left observable sequence, used to determine overlap.
3. `rightDurationSelector` *(`Function`)*: A function to select the duration (expressed as an observable sequence) of each element of the right observable sequence, used to determine overlap.
4. `resultSelector` *(`Any`)*: A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. It has the following arguments
   1. *(`Any`)* An element of the left sequence.&#x20;
   2. *(`Observable`)* An observable sequence with elements from the right sequence that overlap with the left sequence's element.

## Returns

*(`Observable`)*: An observable sequence that contains result elements computed from source elements that have an overlapping duration.

## Example
