数组去重的两种最经常使用方法

 

第1种 - 哈希法数组

复制代码
var arr = [0,0,1,2,4,3, 3, '3', '3', '我我', '我我', '啊'];
var uniqueHash = function (arr) {
    var res = [];
    var hash = {};
    arr.forEach(function (m) {
        if (!hash[m]) {
            res.push(m);
            hash[m] = true;
        }
    });
    return res;
};
console.log('hash', uniqueHash(arr));
复制代码

原理:遍历目标数组,建立一个hash对象将数组的值做为指针保存起来,若是已经存在就跳过,反之就把这个指针的值设置为true。post

 

第2种 - 遍历法spa

复制代码
var arr = [0,0,1,2,4,3, 3, '3', '3', '我我', '我我', '啊'];
var uniqueKey = function (arr) {
    var res = [];
    arr.forEach(function (m, i) {
        if (m != res[res.length - 1]) {
            res.push(m)
        }
    });
    return res;
};

console.log('key', uniqueKey(arr));
复制代码

原理:遍历目标数组,而后push到一个空数组里面,再逐一对比新的数组里的每个值,若是相等就跳过,反之就push。指针

相关文章
相关标签/搜索