0

JS数据去重的方法至少有五六种,只是时间复杂度和空间复杂度都不尽人意,有没有比较高效的数组去重的方法?

Suzy 64
2017-08-30 提问

查看全部 7 个回答

0

哈希算法去重

Array.prototype.unique = function() {
    // n为hash表,r为临时数组
    var n = {}, r = [];
    for (var i = 0; i < this.length; i++) {
        // 如果hash表中没有当前项
        if (!n[this[i]]) {
            // 存入hash表
            n[this[i]] = true;
            // 把当前数组的当前项push到临时数组里面
            r.push(this[i]); 
        }
    }
    return r;
}

可以参考一下这个博客JS数组去重

推荐答案

13

用es6的Set对象呗

var arr = [1,2,3,3,4,5,5];
var set = new Set(arr);
var newArr = Array.from(set);

推广链接