Nodejs Array Equal equals(array)

Here you can find the source of equals(array)

Method Source Code

Array.prototype.equals = function (array) {
  if (!array)/*from   w  ww  . j a v a2 s  .  c om*/
    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;
    }
    else if (this[i] != array[i]) {
      return false;
    }
  }
    return true;
};
Object.defineProperty(Array.prototype, "equals", {enumerable: false});


var string = 'string';
var array1 = [1,2,3];
var array2 = [1,2,3];
var array3 = [1,[2,2],3];
var array4 = [1,[2,2],3];

console.log('expect false: ' + array1.equals(string));
console.log('expect true: ' + array1.equals(array2));
console.log('expect true: ' + array1.equals(array1));
console.log('expect false: ' + array2.equals(array3));
console.log('expect true: ' + array3.equals(array4));
console.log('expect false: ' + array2.equals(null));

// console.log(Object.getOwnPropertyNames(string));

Related

  1. equals(array)
    Array.prototype.equals = function (array) {
        var toReturn = true;
        if (!array)
            toReturn = false;
        if (this.length != array.length)
            toReturn =  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]))
    ...
    
  2. 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;
    };
    
  3. 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]));
    
  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].equals(array[i]))
                    return false;
    ...
    
  5. 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 };
    
  6. equals(array)
    Array.prototype.equals = function (array)
        if (!array)
            return false;
        if (this.length != array.length)
            return false;
    ...
    
  7. equals(array)
    Array.prototype.equals = function(array){
        if(!array){
            return false;
        if(this.length != array.length){
            return false;
        for (let i = 0; i < this.length; i++){
            if(this[i] != array[i]){
    ...
    
  8. equals(array)
    if(Array.prototype.equals)
        console.warn("Overriding existing Array.prototype.equals. Possible causes: New API defines the method, there's a framework conflict or you've got double inclusions in your code.");
    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) {
    ...
    
  9. 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;
    };
    function unitVector(vector) {
        return vector.map(function(v) { return parseFloat(v)/norm(vector); });
    function norm(vector) {
        return Math.sqrt(vector.map(
            function(v) { return v*v; }).reduce(
                function(a, b) { return a + b; }));
    function angleOf(vector) { return Math.atan(vector[1]/vector[0]); }