Nodejs Array Equal equals(array)

Here you can find the source of equals(array)

Method Source Code

Array.prototype.equals = function (array) {
    // if the other array is a falsy value, return
    var toReturn = true;
    if (!array)/*  ww  w.  j  a  v  a 2  s.  c  om*/
        toReturn = false;

    // compare first lengths since can save a lot of time 
    if (this.length != array.length)
        toReturn =  false;

    for (var i = 0, l=this.length; i < l; i++) {
        // Check if we have nested arrays
        if (this[i] instanceof Array && array[i] instanceof Array) {
            // recurse into the nested arrays
            if (!this[i].equals(array[i]))
                toReturn =  false;       
        }           
        else if (this[i] != array[i]) { 
            // Warning - two different object instances will never be equal: {x:20} != {x:20}
            toReturn =  false;   
        }           
    }       
    return toReturn;
}

Related

  1. equals(array)
    Array.prototype.equals = function (array) {
        if (!array)
            return false;
        if (this.length != array.length)
            return false;
        for (var i = 0; i < this.length; i++) {
            if (this[i] instanceof Array && array[i] instanceof Array) {
                if (!this[i].equals(array[i]))
                    return false;
    ...
    
  2. equals(array)
    Array.prototype.equals = function (array) {
        if (!array)
            return false;
        if (this.length != array.length)
            return false;
        for (var i = 0; i < this.length; i++) {
            if (this[i] instanceof Array && array[i] instanceof Array) {
                if (!this[i].equals(array[i]))
                    return false;
    ...
    
  3. equals(array)
    Array.prototype.equals = function (array) {
      if (!array)
        return false;
      if (this.length != array.length)
        return false;
      for (var i = 0, l=this.length; i < l; i++) {
        if (this[i] instanceof Array && array[i] instanceof Array) {
          if (!this[i].equals(array[i]))
            return false;
    ...
    
  4. equals(array)
    Array.prototype.equals = function (array) {
        if (!array)
            return false;
        if (this.length != array.length)
            return false;
        for (var i = 0, l=this.length; i < l; i++) {
            if (this[i] instanceof Array && array[i] instanceof Array) {
                if (!this[i].compare(array[i]))
                    return false;
    ...
    
  5. equals(array)
    Array.prototype.equals = function (array) {
        if (!array) {
            return false;
        if (this.length !== array.length) {
            return false;
        for (var i = 0, l = this.length; i < l; i++) {
            if (this[i] instanceof Array && array[i] instanceof Array) {
    ...
    
  6. equals(array)
    function toRadians(degrees) { return degrees * (Math.PI / 180);}
    function toDegrees(radians) { return radians * (180 / Math.PI);}
    Array.prototype.equals = function (array) {
        if (!array) { return false; }
        else if (this.length != array.length) { return false; }
        for (var i = 0, l = this.length; i < l; i++) {
            if (this[i] instanceof Array && array[i] instanceof Array) {
                if (!this[i].equals(array[i])) { return false; }
            else if (this[i] != array[i]) { return false; }
        return true;
    };
    
  7. equals(array)
    Array.prototype.equals = function(array) {
      var answer = this.every(function(element, index) {
        return element === array[index];
      });
      if (answer) {
        return answer;
      } else {
        return 'Not equal!\n' + 'Expected: [' + array + ']\n' + 'Got: [' + this + ']';
    function merge(array1, array2) {
      var copy1 = array1.slice();
      var copy2 = array2.slice();
      var merged = [];
      while (copy1[0] || copy2[0]) {
        if (copy1[0] < copy2[0] || typeof copy2[0] === 'undefined') {
          merged.push(copy1.shift());
        } else {
          merged.push(copy2.shift());
      return merged;
    console.log(merge([1, 5, 9], [2, 6, 8]).equals([1, 2, 5, 6, 8, 9]));
    console.log(merge([1, 1, 3], [2, 2]).equals([1, 1, 2, 2, 3]));
    console.log(merge([], [1, 4, 5]).equals([1, 4, 5]));
    console.log(merge([1, 4, 5], []).equals([1, 4, 5]));
    
  8. equals(array)
    Array.prototype.equals = function (array) {
        if (!array)
            return false;
        if (this.length != array.length)
            return false;
        for (var i = 0, l=this.length; i < l; i++) {
            if (this[i] instanceof Array && array[i] instanceof Array) {
                if (!this[i].equals(array[i]))
                    return false;
    ...
    
  9. equals(array)
    Array.prototype.equals = function(array) {
      var answer = this.every(function(element, index) {
        return element === array[index];
      });
      if (answer) {
        return answer;
      } else {
        return 'Not equal!\n' + 'Expected: [' + array + ']\n' + 'Got: [' + this + ']';
    function assertEqual(value, expected) {
      if (Array.isArray(value) && Array.isArray(value)) {
        if (value.equals(expected)) {
          console.log("Passed");
        } else {
          console.log("Failed");
          console.log("Got: ", value);
          console.log("Expected: ", expected);
      } else {
        if (value === expected) {
          console.log("Passed");
        } else {
          console.log("Failed");
          console.log("Got: ", value);
          console.log("Expected: ", expected);
    module.exports = { assertEqual };