js陣列去重

2021-08-27 16:03:55 字數 1504 閱讀 2015

參考

雙層迴圈

let arr = [1, 2, '1', 3, 2];

// 雙重迴圈

let arr1 =

for (let i = 0; i < arr.length; i++)

} if (j === arr.length)

}

indexof

for (let i = 0; i < arr.length; i++) 

}

排序後去重

let arr2 = arr.sort();

for (let i = 0; i < arr.length; i++)

}

filter

arr1 = arr.filter((item, index, arr) => )

arr1 = arr.sort().filter((item, index, arr) => )

object

let obj = {};

arr1 = arr.filter((item, index, arr) => )

es6

arr1 = array.from(new set(arr));

arr1 = [... new set(arr)];

let map = new map();

arr1 = arr.filter(item => )

方法

結果說明

for迴圈

[1, 「1」, null, undefined, string, string, /a/, /a/, nan, nan]

物件和 nan 不去重

indexof

[1, 「1」, null, undefined, string, string, /a/, /a/, nan, nan]

物件和 nan 不去重

sort

[/a/, /a/, 「1」, 1, string, 1, string, nan, nan, null, undefined]

物件和 nan 不去重 數字 1 也不去重

filter + indexof

[1, 「1」, null, undefined, string, string, /a/, /a/]

物件不去重 nan 會被忽略掉

filter + sort

[/a/, /a/, 「1」, 1, string, 1, string, nan, nan, null, undefined]

物件和 nan 不去重 數字 1 不去重

優化後的鍵值對方法

[1, 「1」, null, undefined, string, /a/, nan]

全部去重

set[1, 「1」, null, undefined, string, string, /a/, /a/, nan]

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...

JS 陣列去重

我總共想出了三種演算法來實現這個目的 array.prototype.unique1 function return n array.prototype.unique2 function r n為hash表,r為臨時陣列 for var i 0 i this.length i 遍歷當前陣列 retu...