這裡是我總結的關於去重的五種辦法 希望對各位有幫助
在這裡 統一 以 var arr = [1,1,1,3,2,1,2,4];為例
具體使用已經封裝了方法 可以呼叫
方法一雙重for迴圈去重
原理 兩兩比較如果相等的話就刪除第二個
例如: 1 1 1 3 2 1 2 4
先讓第乙個1 即arr[0]與後面的乙個個比較 如果後面的值等於arr[0] 刪除後面的值
第一次結束後的結果是 1 3 2 2 4 刪除了後面所有的1
同理 第二次 第三會刪除與自己相同的元素
詳細介紹 看**注釋
1
function norepeat1(arr)
}return arr;
}
方法三
原理:用乙個空陣列去存首次 出現的元素
利用 indexof 屬性 indexof是返回某個指定的字元在字串**現的位置,如果沒有就會返回-1
因此我們可以很好的利用這個屬性 當返回的是 -1時 就讓其存入陣列
function norepeat2(arr)
}return newarr;
}
方法四:
原理:利用物件的思想 如果物件裡沒有這個屬性的話就會返回undefined
利用這個原理當返回的是undefined時 讓其放入陣列 然後在給這個屬性賦值
function norepeat3(arr) ;
var newarr = ;
for(var i = 0; i < arr.length; i++)
}return newarr;
}
方法五
原理:迴圈比較如果相等的讓後面的元素值為0 最後在輸出的時候刪除為0的 這個前提是你的資料裡不能有0 但是凡事可以變通你可以設定任何值替代這個0 這個方法是我當時想到實現的所以沒有進行很好的優化
var newarr = ;
//控制外迴圈
for(var i=0; i}
//去除值為0的
if(arr[i]==0)else
}
陣列去重的方法總結
實現思路 新建乙個陣列,遍歷要去重的陣列,當值不在新陣列的時候 indexof 為 1 就加入該新陣列中 function unique arr return newarr var arr 1,2,2,3,4,4,5,1,3 var newarr unique arr console.log new...
陣列去重的方法總結
方法一 var arr 1,a a b d e 1,0 array.prototype.unique1 function i 4 if repeat return res var arr 1,a a b d e 1,0 console.log arr.unique1 方法二 如果物件屬性不存在,不會...
陣列的去重方法總結(包括物件陣列的去重方法)
陣列的去除在真實專案中是非常的常用,那麼在這裡總結一下物件陣列及基本型別陣列的去重方法,主要利用了物件的鍵值是唯一的乙個特性。1 去重方法一利用陣列的索引對應的值。let arr 2,3,3,3,2,4,2 console.log arr is a instance of arr typeof ar...