首頁  >  文章  >  web前端  >  數組去重有哪些方法?

數組去重有哪些方法?

零下一度
零下一度原創
2017-06-26 10:27:261177瀏覽

今天我就簡單的來寫點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項在目前陣列中第一次出現的位置不是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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn