JS去重演算法

2022-06-25 20:18:13 字數 782 閱讀 2598

1.遍歷陣列法

它是最簡單的陣列去重方法(indexof方法)

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

1

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

2function

unique1(arr)8}

9return

hash;

10 }

2.陣列下標判斷法

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

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

1

function

unique2(arr)7}

8return

hash;

9 }

3.es6實現

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

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

1

function

unique5(arr)

擴充套件:如果重複,則去掉該元素

function

unique22(arr)

} return

hash;

}

JS資料演算法 去重

將陣列轉為set set自身帶有去重功能 再將set轉為陣列 let arr 1 2,3 2,2 3,1 7,8 3,9 4 let newarr array.from new set arr console.log newarr 將陣列每一項與後面所有項比較 如果後面所有項中不存在當前項,則將其新...

JS陣列去重,物件去重

例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...

js 陣列去重

function unique arr if isrepeated return result 建立乙個新的陣列,迴圈原有的陣列,每取乙個數就迴圈判斷新建的陣列中是否有和這個相等的值,沒有則插入。方法簡單,但是有雙重迴圈,陣列大了之後效率低。所以能一次迴圈解決最好。var str new array...