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,得到乙個新的列表,就是沒有重...