第一種方法:創(chuàng)建空數(shù)組利用indexOf方法檢測(cè)舊數(shù)組的項(xiàng)是否在新數(shù)組中。
Array.prototype.unique = function(){
var arr = [];//創(chuàng)建新數(shù)組
for(var i = 0; i < this.length; i++){ //遍歷當(dāng)前數(shù)組
if(arr.indexOf(this[i]) === -1) {//如果等于-1碌奉,那么也是就是新數(shù)組中沒有一項(xiàng)和當(dāng)前數(shù)組一樣
arr.push(this[i])
}
}
return arr;
}
//調(diào)用:ary.unique()
第二種方法:創(chuàng)建空數(shù)組和空對(duì)象翁都,判斷數(shù)組是否在對(duì)象中
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]); //添加到新數(shù)組中
}
}
return arr
}
//調(diào)用:ary.unique()
第三種方法:new Set數(shù)組去重( ES6去重方式碍论,代碼量最少 )
[...new Set([1,1,2,2,3,3])]; //[1,2,3]
//…(擴(kuò)展運(yùn)算符)
//擴(kuò)展運(yùn)算符:將一個(gè)數(shù)組轉(zhuǎn)為用逗號(hào)分隔的參數(shù)序列