//在关键字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();
map,key value
var distinctArr = [...new Set(arr)];
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;
});
具体百度
1.将原数组中的元素和结果数组中的元素一一比较
2.sort排序
3.Set(es5)