Nodejs Array Equal equals(other, callback = (x, y) => (x === y))

Here you can find the source of equals(other, callback = (x, y) => (x === y))

Method Source Code

/**/*w ww .j a  v a 2s  . c o m*/
 * [1,2,3].equals([1,2,3]); // true
 * [1,2,3].equals([1,2]); // false
 * [1,2,3].equals([1,2,4]); // false
 * [1,2,3].equals("123"); // false
 * Array.prototype.equals.call("123", "123"); // true
 * Array.prototype.equals.call("123", [1,2,3]); // false
 * [1,2,3].equals([1,2,{value: 3}], (x, y) => (x.value || x) === (y.value || y)); // true
 */
Array.prototype.equals = function (other, callback = (x, y) => (x === y)) {
  // Check the other object is of the same type
  if (Object.getPrototypeOf(this) !== Object.getPrototypeOf(other)) {
    return false;
  }
  if (this.length === undefined || this.length !== other.length) {
    return false;
  }
  return Array.prototype.every.call(this, (x, i) => callback(x, other[i]));
};

Related

  1. equals(array, strict)
    Array.prototype.equals = function(array, strict){
      if(this.length!=array.length)
        return false;
      if(arguments.length == 1)
        strict = true;
      if(!strict){
        this.sort((x,y) => x-y);
        array.sort((x,y) => x-y);
      for(var i = 0; i < this.length; i++){
        if(this[i]!=array[i]){
          return false;
      return true;
    
  2. equals(b)
    function arraysEqual(a,b) { return !!a && !!b && !(a<b || b<a); }
    Array.prototype.equals = function(b) {
      return arraysEqual(this, b);
    Array.prototype.isPalindromic = function() { return this.concat().equals(this.reverse()); }
    function getHighestPalindrome () {
      var max = 1000;
      var min = 100;
      var palindrome = 0;
    ...
    
  3. equals(element)
    Array.prototype.equals = function (element) {
      if (this === element) return true;
      if (element == null || this == null) return false;
      if (element.length != this.length) return false;
      for (var i = 0; i < element.length; ++i) {
        if (element[i] !== this[i]) return false;
      return true;
    
  4. equals(other)
    Array.prototype.equals = function(other) {
        if (!other)
            return false;
        if (other == this)
            return true;
        if (this.length != other.length)
            return false;
        for (var i = 0, l=this.length; i < l; i++) {
            if (this[i] != other[i]) {
    ...
    
  5. equals(other)
    function is_self_describing(n) {
        var digits = Number(n).toString().split("").map(function(elem) {return Number(elem)});
        var len = digits.length;
        var count = digits.map(function(x){return 0});
        digits.forEach(function(digit, idx, ary) {
            if (digit >= count.length)
                return false
            count[digit] ++;
        });
    ...
    
  6. equals(otherArray)
    Array.prototype.equals = function(otherArray) {
      if (this.length !== otherArray.length) {
        return false;
      for (var i = 0; i < this.length; i++) {
        if (this[i] !== otherArray[i]) {
          return false;
        return true;
    ...
    
  7. equals(target)
    var fs = require("fs");
    Array.prototype.equals = function(target) {
      if(this.length !== target.length) return false;
      for (var i=0; i<this.length; i++) {
        if(this[i] !== target[i]) return false;
      return true;
    module.exports.loadSheet = function(type2, name) {
    ...
    
  8. equals(targetArray)
    Array.prototype.equals = function (targetArray) {
        if (!targetArray)
            return false;
        if (this.length != targetArray.length)
            return false;
        for (var i = 0, l=this.length; i < l; i++) {
            if (this[i] instanceof Array && targetArray[i] instanceof Array) {
                if (!this[i].equals(targetArray[i]))
                    return false;       
    ...
    
  9. equals(that)
    "use strict";
    Array.prototype.equals = function(that) {
      if(!Array.isArray(that)) {
        return false;
      if(this.length !== that.length) {
        return false;
      for(var i = 0; i < this.length; i++) {
    ...