zoukankan      html  css  js  c++  java
  • js比对一维数组全等的算法

    //辅助方法1,返回某个值在数组中的位置
            Array.prototype.indexOf = function (e) {
                for (var i = 0, l = this.length; i < l; i++) {
                    if (this[i] == e) return i;
                }
                return -1;
            }
            //辅助方法2,数组中移除元素
            Array.prototype.remove = function (val) {
                var index = -1;
                for (var i = 0, l = this.length; i < l; i++) {
                    if (this[i] == val) index = i;
                }
                if (index > -1) {
                    this.splice(index, 1);
                }
            };
            //比对算法
            Array.prototype.compare = function (arr) {
                var self = this, flag = true, arrLength = arr.length;
                if (!$.isArray(arr)) {
                    throw "比对数组参数类型错误";
                    return false;
                } else if (self.length !== arr.length) {
                    //长度不等,直接判定为不等
                    return false;
                }
                while (arrLength--) {
                    var arrVal = arr[arrLength];
                    //存在
                    if (self.inArray(arrVal)) {
                        //元素相等,移除该元素
                        self.remove(arrVal);
                        arr.remove(arrVal);
                    } else {
                        flag = false;
                        return;
                    }
                }
                //比对记录全部相等,并且还有元素,继续调用递归
                if (flag && self.length > 0) {
                    self.compare(arr);
                }
                return flag;
            }

    调用方式:arr1.compare(arr2);接收返回值

  • 相关阅读:
    118/119. Pascal's Triangle/II
    160. Intersection of Two Linked Lists
    168. Excel Sheet Column Title
    167. Two Sum II
    172. Factorial Trailing Zeroes
    169. Majority Element
    189. Rotate Array
    202. Happy Number
    204. Count Primes
    MVC之Model元数据
  • 原文地址:https://www.cnblogs.com/Brose/p/js_array_compare.html
Copyright © 2011-2022 走看看