第一种方法:创建空数组利用indexOf方法检测旧数组的项是否在新数组中。
Array.prototype.unique = function(){
var arr = [];//创建新数组
for(var i = 0; i < this.length; i++){ //遍历当前数组
if(arr.indexOf(this[i]) === -1) {//如果等于-1,那么也是就是新数组中没有一项和当前数组一样
arr.push(this[i])
}
}
return arr;
}
//调用:ary.unique()
第二种方法:创建空数组和空对象,判断数组是否在对象中
Array.prototype.unique = function(){
var tmp = {},arr = [] ;
for(var i = 0; i < this.length; i++){
if(!tmp[this[i]]) { //如果tmp中没有this[i]
tmp[this[i]] = true; //存入
arr.push(this[i]); //添加到新数组中
}
}
return arr
}
//调用:ary.unique()
第三种方法:new Set数组去重( ES6去重方式,代码量最少 )
[...new Set([1,1,2,2,3,3])]; //[1,2,3]
//…(扩展运算符)
//扩展运算符:将一个数组转为用逗号分隔的参数序列
网友评论