js陣列去重複

2021-09-25 19:10:46 字數 1134 閱讀 1823

1.遍歷陣列法

實現思路:新建乙個陣列,遍歷去要重的陣列,當值不在新陣列的時候(indexof為-1)就加入該新陣列中;

var arr=[2,8,5,0,5,2,6,7,2];

function unique1(arr)

} return hash;

}

2.陣列下標判斷法

呼叫indexof方法,效能和方法1差不多

實現思路:如果當前陣列的第 i 項在當前陣列中第一次出現的位置不是 i,那麼表示第 i 項是重複的,忽略掉。否則存入結果陣列。

function unique2(arr)

} return hash;

}

3.排序後相鄰去除法

實現思路:給傳入的陣列排序,排序後相同的值會相鄰,然後遍歷排序後陣列時,新陣列只加入不與前一值重複的值。

function unique3(arr)

} return hash;

}

4.優化遍歷陣列法(推薦)

實現思路:雙層迴圈,外迴圈表示從0到arr.length,內迴圈表示從i+1到arr.length

將沒重複的右邊值放入新陣列。(檢測到有重複值時終止當前迴圈同時進入外層迴圈的下一輪判斷)

function unique4(arr)

}hash.push(arr[i]);

} return hash;

}

5.es6實現

基本思路:es6提供了新的資料結構set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。

set函式可以接受乙個陣列(或類似陣列的物件)作為引數,用來初始化。

function unique5(arr)
擴充套件:如果重複,則去掉該元素

陣列下標去重

function unique22(arr)

} return hash;

}

陣列去重複

最近在寫demo的時候新學了一招 陣列去重複的方法 思路 利用json特性。1 建立乙個空json,通過對key的檢索 獲得json中 key 值 json arr i 2 對該值取反 json arr i 說明該值不存在。3 這樣我們可以對其賦值,json arr i true 這裡賦什麼值無所謂...

陣列去重複

1.開闢新的記憶體空間 判斷是否存在,若不存在則新增到陣列中,得到最終結果的順序不發生變化 nsarray originalarr 1,2,3,1,3 nsmutablearray resultarrm nsmutablearray array for nsstring item in origin...

陣列去重複演算法

var ary 1,23,12,12,1,12,32,1,1 function norepetition ary 3.返回新的陣列 return newary var result norepetition ary console.log result 方法不改變元素組 相容版 相容ie低版本的in...