JavaScript 拼接多個陣列並刪除重複元素

antzone發表於2019-06-05

在實際應用中,可能需要將多個陣列合併到一個陣列中去,並且刪除陣列中重複的元素。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
var a=["antzone","螞蟻部落","市南區"], 
b=["新銳科技","螞蟻部落","努力奮鬥"], 
c=[2,"新銳科技","js教程"], 
_a=a.concat(b).concat(c), 
_hash={}, 
_new=[]; 
for(var i=_a.length;i--;){ 
  if(!_hash[_a]){ 
    _hash[_a]=1; 
    _new.push(_a); 
  }; 
}; 
console.log(_new)

將三個陣列連線起來,並且刪除了重複的元素,下面介紹一下此效果的實現過程。

一.實現原理:

首先使用concat方法將幾個陣列連線在一起,然後再刪除新陣列中重複的元素。

刪除重複元素非常的簡單,將陣列中的元素作為物件的屬性,首先判斷物件是否具有此屬性,如果沒有,將此值存入新的陣列,然後再將此值作為物件的屬性,如此重複,具體可以參閱程式碼註釋。

二.程式碼註釋:

(1).var a=["antzone","螞蟻部落","市南區"],使用直接量方式宣告陣列。

(2)._a=a.concat(b).concat(c),將陣列連線為一個陣列。

(3)._hash={},宣告一個物件,此物件會以陣列的元素作為屬性。

(4)._new=[],宣告一個新陣列,用來儲存刪除重複後的元素。

(5).for(var i=_a.length;i--;){},迴圈語句,這個寫法等同於for(var i=_a.length;i>0i--;)。

(6).if(!_hash[_a]),判斷物件中是否含所有此屬性。

(7)._hash[_a]=1,如果沒有的話就新增此屬性並將屬性值設定為1,這裡設定為1其實沒有什麼特別用以,雖然一個都可以。

(8)._new.push(_a),將此元素新增到新的陣列。

三.相關閱讀:

(1).contact()方法參閱JavaScript concat()一章節。 

(2).push()方法參閱JavaScript push()一章節。

相關文章