今天我就簡單的來寫點js陣列去重,在這我總結了三種方法。
第一種方法:
先定義一個臨時數組,然後遍歷目前的數組,如果當前數組的第i個元素,已經保存進了臨時數組那麼跳過這個元素;否則把目前的那一項加到臨時數組裡面。
具體代碼如下:
var arr = [23,23,1,1,1235,123,123,1235,45,345,457,45245,234,2341,23] ;
Array.prototype.unique1 = function(){
var n = [];//定義一個新的臨時數組
for(var i = 0; i
//如果目前數組的第i個元素,已經保存進了臨時數組那麼跳過;
//否則把當前項目push到臨時數組裡
if(n.indexOf(this[i])==-1){
n.push(this[i]);
}
}
return n;
}
第二種方法:
先建立一個新的陣列存放結果,如果目前陣列的第i項在目前陣列中第一次出現的位置不是i,那麼表示第i項是重複的,過濾掉,否則存入結果數組。
具體程式碼如下:
#Array.prototype.unique2 = function(){
var n = [this[0]] ;//結果陣列
for (var i = 1; i
//那麼表示第i項是重複的,過濾掉,否則存入結果數組
if(this.indexOf(this[i])==i){
n.push(this[i ]);
}
}
return n;
}
第三種方法:
先建立一個暫存表,一個臨時數組。如果臨時表中沒有當前項,則存入臨時表中,把目前數組的當前項加到臨時數組裡。
具體程式碼如下:
Array.prototype.unique3=function(){
var n = {},r=[];//n為臨時表,r為臨時數組
//遍歷當前數組
for (var i = 0; i < this.length; i++) {
if (!n[this[i]]) { //如果臨時表中沒有當前項目
n[this[i]]=true;//存入臨時表
r.push(this[i]);//把當前數組的當前項目push到臨時數組裡
}
}
return r;
}
以上是數組去重有哪些方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!