1.雙迴圈去重。先將陣列的第乙個元素賦值給乙個新陣列,再用兩個巢狀的for迴圈。從陣列的第二個元素開始比較該元素與新陣列中是否有重複的元素,如果有就跳出當前迴圈;如果沒有就把第二個元素賦值給新的陣列。然後從陣列的第三個元素又開始,如此迴圈下去,最後返回新的陣列(即去重後的陣列)。如果陣列很大的話就不是特別建議使用這種方法,因為這樣很佔記憶體。
let arr = [1,2,2,3,2,5,6]
let newarr = [arr[0]]
for(let i = 1; i < arr.length; i++){
let flage = true
for(let item of newarr){
if(arr[i] === item){
flage = false
break
if(flage)
newarr.push(arr[i])
console.log(newarr)//[1, 2, 3, 5, 6]
2.indexof:定義乙個空的新陣列,迴圈原來陣列中的值,判斷陣列中的值是否在新陣列中,如果不在就把該值放進新陣列,最後再返回新陣列。
let arr = [1,2,2,3,2,5,6]
let newarr =
let len = arr.length
for(let i = 0; i < len; i++){
if(newarr.indexof(arr[i]) === -1){//陣列中的某個值在新陣列中不存在
newarr.push(arr[i])
console.log(newarr)//[1, 2, 3, 5, 6]
3.相鄰元素去重:先將陣列中的元素進行排序,再使用for迴圈,將陣列中的每乙個元素與它的前乙個元素進行比較,如果不相同就把該元素新增到新的陣列中去。
let arr = [1,2,2,3,2,5,6]
let newarr =
let len = arr.length
arr.sort()
for(let i = 0; i < len; i++){
if(arr[i] != arr[i-1]){//陣列中的某個值與它相鄰的元素進行比較
newarr.push(arr[i])
console.log(newarr)//[1, 2, 3, 5, 6]
4.雙迴圈去重:借助set資料結構和array.from(將set結構轉換為陣列)實現。
let arr = [1,2,2,3,2,5,6]
let myset = new set(arr);
let newarr= array.from(myset);
console.log(newarr)//[1, 2, 4, 3, 5]
JS實現陣列去重
方法一,利用物件屬性不能相同的方法進行去重 array.prototype.distinct function result len arr.length for i 0 i arr.length i return result var a 1,2,3,4,5,6,5,3,2,4,56,4,1,2,...
js實現陣列去重
接收兩個引數時,第二個引數可設定開始查詢元素的位置 const beasts ant bison camel duck bison console.log beasts.indexof bison expected output 1 start from index 2 console.log be...
js實現陣列去重
陣列去重即去掉陣列中重複的元素,是web前端工作者在面試過程中和工作中經常會遇到的乙個問題,相信一般的方法大家都會,只不過會存在效率差異問題,下面我就來說說我們常用的幾種陣列去重的方法!function deleterepeat1 arr if has return newarr 方法2,思路 先將...