code: function sequenceEqual(otherSequence, equalityComparer) {
    equalityComparer = typeof equalityComparer === 'function' ? equalityComparer : util.defaultEqualityComparer;
    let selfIterator = this[Symbol.iterator] ? this[Symbol.iterator]() : undefined;
    let otherIterator = otherSequence[Symbol.iterator] ? otherSequence[Symbol.iterator]() : undefined;
  
    if (toLinqable([selfIterator, otherIterator]).any(i => i === undefined)) return false;
  
    let selfItem;
    let otherItem;
  
    do {
      selfItem = selfIterator.next();
      otherItem = otherIterator.next();
  
      if (!equalityComparer(selfItem.value, otherItem.value)) return false;
    } while (!selfItem.done);
  
    return selfItem.done === otherItem.done;
  }
docs: Determines whether two sequences are equal by comparing the elements by using the default equality comparer for their type.
  
  @param otherSequence A sequence to compare to the first sequence.
  @return true if the two source sequences are of equal length and their corresponding elements are equal according to the equality comparer for their type; otherwise, false.