总结几种数组去重的方法,敲一遍代码

2017-07-07  本文已影响0人  殖民_FE

这里总结集中数组去重的方法:自己动手敲一敲,精神一整天!
1.第一种方法:(我经常用的,好理解)

function arrAlong(arr) {
    for (var i = 0; i < arr.length; i++) {
        for (var j = i + 1; j < arr.length; j++) {
            if (arr[i] == arr[j]) {
                arr.splice(j, 1);
                j--;
            }
        }
    }
    return arr;
};

利用对数组的进行双重遍历,对数组的位置的数值进行比较,删除相同的元素,返回去重之后的数组!
2.第二种方法

function arrAlong(arr) {
    var ret = [];
    for (var i = 0, j = arr.length; i < j; i++) {
        if (ret.indexOf(arr[i]) === -1) {
            ret.push(arr[i]);
        }
    }
    return ret;
}

利用indexof的特性,进行操作!
3.第三种方法

function arrAlong(arr) {
    var ret = [];
    arr.forEach(function(e, i, arr) {
        if (arr.indexOf(e) === i) {
            ret.push(e);
        }
    });
    return ret;
}

数组下标判断法, 遍历数组,利用indexOf判断元素的返回值是否与当前索引相等,如相等则加入
4.第四中方法

function arrAlong(arr) {
    var tmp = {},
        ret = [];
    for (var i = 0, j = arr.length; i < j; i++) {
        if (!tmp[arr[i]]) {
            tmp[arr[i]] = 1;
            ret.push(arr[i]);
        }
    }
    return ret;
}

遍历数组,利用object对象保存数组值,判断数组值是否已经保存在object中,未保存则push到新数组并用object[arrayItem]=1的方式记录保存

上一篇 下一篇

猜你喜欢

热点阅读