JS(ES6)去除陣列中的重覆記錄

2021-08-26 12:01:16 字數 1819 閱讀 1402

1.雙層迴圈,外層迴圈元素,內層迴圈時比較值;如果有相同的值則跳過,不相同則push進陣列

// formatconcatarr(array)==[ 1, 23, 2, 3 ] 

formatconcatarr(array)==}

formatconcatarr (array) 

}result.push(arr[i])

}return result

}

2.利用splice直接在原陣列進行操作

雙層迴圈,外層迴圈元素,內層迴圈時比較值;值相同時,則刪去這個值

注意點:刪除元素之後,需要將陣列的長度也減1.(優點:簡單易懂;缺點:占用記憶體高,速度慢)

// formatconcatarr2(array)==[ 1, 2, 3, 23 ] 

formatconcatarr2(array)==}

formatconcatarr2 (array) }}

return arr

}

3.利用物件的屬性不能相同的特點進行去重

// formatconcatarr3(array)==[ 1, 2, 3, 23 ] 

formatconcatarr3(array)==}
formatconcatarr3 (array) 

let result =

let len = arr.length

for (i = 0; i < len; i++)

}return result

}

4.陣列遞迴去重;運用遞迴的思想, 先排序,然後從最後開始比較,遇到相同,則刪除

// formatconcatarr4(array)==[ 1, 2, 3, 23 ] 

formatconcatarr4(array)==}
formatconcatarr4 (array) )

function loop (index)

// 遞迴loop函式進行去重

loop(index - 1)}}

loop(len - 1)

return arr

}

5.利用indexof以及foreach

// formatconcatarr5(array)==[ 1, 23, 2, 3 ] 

formatconcatarr5(array)==}
formatconcatarr5 (array) 

})} return result

}

6.利用es6的set:

1.set資料結構,它類似於陣列,其成員的值都是唯一的。利用array.from將set結構轉換成陣列

// formatdedupearr(array)==[ 1, 2, 3, 23 ] 

formatdedupearr(array)==}
formatdedupearr (array) 

2.擴充套件運算子和 set 結構相結合,就可以去除陣列的重複成員。擴充套件運算子(...)內部使用for...of迴圈,所以也可以用於 set 結構。 // formatdedupearr2()==[ 1, 2, 3, 23 ]

formatdedupearr2()==}
formatdedupearr2 ()

js es6中陣列的變化

1.擴充套件運算子 js 2.arrya.form js let arr 1,2,3 let arr3 array.from arr 傳進去的不管是類陣列還是陣列返回的都是陣列 arguments function show show 1,2,3,4,5 當json中有length的時候 也可以當成...

去除List集合中的重複值 去除陣列的重複值

一 最近專案中需要對list集合中的重複值進行處理,大部分是採用兩種方法,一種是用遍歷list集合判斷後賦給另乙個list集合,一種是用賦給set集合再返回給list集合。但是賦給set集合後,由於set集合是無序的,原先的順序就打亂了。所以我又想著能不能用set的特性進行去重又不打亂順序呢?試了一...

去除陣列中重複元素

統計乙個一維陣列中的各個元素的個數,然後刪除多出來的重複元素,並輸出結果。例如 1,2,2,2,3,3,3,3,3 1,2,3 將重複元素的列表中的重複元素進行統計,並將統計結果放在dictionary中,key為元素,value為該元素的個數 然後通過for獲取key,得到乙個新的列表,就是沒有重...