Nodejs Array Equal equals(other)

Here you can find the source of equals(other)

Method Source Code

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] ++;//from   ww w .  j av a 2  s.c o m
    });

    return digits.equals(count);
}

Array.prototype.equals = function(other) {
    if (this === other)
        return true;  // same object
    if (this.length != other.length)
        return false;
    for (idx in this)
        if (this[idx] !== other[idx])
            return false;
    return true;
}

for (var i=1; i<=3300000; i++)
    if (is_self_describing(i))
        print(i);

Related

  1. equals(array, strict)
    function gridToCanvas(gridX, gridY) {
      var canvasX = gridX * 16;
      var canvasY = gridY * 16; 
      return [canvasX, canvasY];
    function isInt(num) {
      return !(num % 1 != 0);
    Array.prototype.equals = function (array, strict) {
    ...
    
  2. 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;
    
  3. 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;
    ...
    
  4. 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;
    
  5. 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]) {
    ...
    
  6. equals(other, callback = (x, y) => (x === y))
    Array.prototype.equals = function (other, callback = (x, y) => (x === y)) {
      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]));
    };
    ...
    
  7. 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;
    ...
    
  8. 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) {
    ...
    
  9. 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;       
    ...