首页 新闻 赞助 找找看

收集js数组去重的方法

0
[待解决问题]
//在关键字Array的原型上绑定一个方法unique1
Array.prototype.unique1 = function(){
//定义一个空数组和一个空对象,空数组用来接收新数组,对象用来标记某数字是否重复
  var temp = [],json = {};
//遍历数组,其中的this指向调用该方法的数组
    for(var i = 0;i < this.length; i++)
    {
        var res = this[i];
//判断对象json里面有没有某个属性;              
    if(!json[res]){ 
        temp.push(res);json[res]=1;
     }
  }
return temp;
}

var arr = [1,2,3,1,2,3,4,6,7]
//调用unique1这个方法
arr.unique1();
玮小宝的主页 玮小宝 | 菜鸟二级 | 园豆:206
提问于:2017-09-06 18:58
< >
分享
所有回答(4)
0

map,key value

~扎克伯格 | 园豆:1923 (小虾三级) | 2017-09-07 09:39
0

var distinctArr = [...new Set(arr)];

幻天芒 | 园豆:37175 (高人七级) | 2017-09-07 13:34
0

Map或者Set,es5还6新增的集合。

应该还有其他

哦,还有对集合的操作,map函数(注意是函数且小写跟上面的Map不是一个东西)。

还有filter函数

var r, arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry'];
r = arr.filter(function (element, index, self) {
return self.indexOf(element) === index;
});

具体百度

大兄弟竹子 | 园豆:55 (初学一级) | 2017-09-07 17:12
0

1.将原数组中的元素和结果数组中的元素一一比较

2.sort排序

3.Set(es5)

女孩,加油 | 园豆:1098 (小虾三级) | 2017-09-08 12:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册