JS有没有比较高效的数组去重的方法?

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

阅读 13.4k
评论 2017-08-30 提问
    7 个回答

    哈希算法去重

    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数组去重