JavaScript数组中包含数组如何去重?

如题所述

原生js的数组是不包含去重函数的。

可以自己编写去重函数。

下面是一个简单的例子

$.array.extend({
    unique : function (fn) {
        var len = this.length,
            result = this.slice(0),
            i, datum;
             
        if ('function' != typeof fn) {
            fn = function (item1, item2) {
                return item1 === item2;
            };
        }
        
        while (--len > 0) {
            datum = result[len];
            i = len;
            while (i--) {
                if (fn(datum, result[i])) {
                    result.splice(len, 1);
                    break;
                }
            }
        }
 
        len = this.length = result.length;
        for ( i=0; i<len; i++ ) {
            this[ i ] = result[ i ];
        }
 
        return this;
    }
});
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-19
1.创建一个新的数组存放结果
2.创建一个空对象
3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。本回答被网友采纳
第2个回答  2016-01-09
javascript中去掉数组中的重复元素需要用循环处理。

比如定义一个数组:
var arr = [9, 9, 111, 2, 3, 4, 4, 5, 7];
调用removeDuplicates方法进行去重处理
Array.prototype.removeDuplicates = function (){
var temp=new Array();
this.sort();
for(i=0;i<this.length;i++){
if(this[i]==this[i+1]) {continue}
temp[temp.length]=this[i];
}
return temp;
}

var result =arr.removeDuplicates;
结果:[9, 111, 2, 3, 4, 5, 7]

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网