js刪除陣列中重複的元素

antzone發表於2017-03-15

在某些應用中,陣列中重複的元素就是多餘的,所以需要清除重複的元素,以避免對操作帶來的影響,下面就通過程式碼例項介紹一下如何實現此操作,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
var arr=[1,2,4,5,6,2,4];
Array.prototype.deleteRepeat=function(){
  var newArray=[];
  var obj={};
  for(var i=0;i<this.length;i++){
    if(typeof(obj[this[i]])=="undefined"){
      obj[this[i]]="";
    }
  }
  for(var y in obj){
    newArray.push(y);
  }
  return newArray;
}
console.log(arr);

以上程式碼實現了我們的要求,當然刪除陣列中重複元素的方法有多種,這裡就介紹這麼一種,下面介紹一下實現過程:

一.實現原理:

原理比較巧妙,通過for迴圈將陣列的元素只作為物件直接量的屬性,並將屬性值設定為"",同時判斷是否typeof(obj[this[ i ]])=="undefined",如果等於空說明物件直接量中沒有此屬性,那麼就為物件物件直接量新增該屬性(屬性是陣列元素值),那麼當for迴圈執行完畢,那麼物件直接量的屬性就是陣列中所有非重複元素,最後通過for in語句將物件屬性新增到新陣列中去即可。

二.相關閱讀:

1.物件直接量可以參閱js 物件直接量簡單介紹一章節。 

2.typeof()可以參閱javascript typeof 一章節。 

3.push()函式可以參閱javascript push()一章節。

相關文章