目的:把陣列中重複的內容去掉。
eg:將陣列[2, 3, 1, 4, 2, 2, 3, 4, 1, 5,"1"]變成[2, 3, 1, 4, 5, "1"]。
每次取出陣列 一項,和其他的所有項比較
如果比較 有相同的 , 把重複的這個(後面的)刪掉。
準備乙個 空陣列 res
然後遍歷 arr
如果 arr中這一項 在 res中不存在,
則把這一項 放進 res中
如果 存在
什麼都不做
最後得到的res,就是去重得到後的陣列。
思路一和思路二存在的缺點:如果陣列內容中含有兩個nan,由於nan不等於它自己。故刪選不出來。
統計所有項出現的次數,形成乙個物件
物件的鍵名 是 每一項的元素 ,
物件的鍵值 是 該項出現的次數.
最後我們只需要 統計所有的鍵名就可以了
這個方法存在的問題就是:
1.如果陣列中存在數字1,和字串「1」,當遍歷鍵名的時候,兩則是一樣的,得到的陣列會少了數字1.
2.鍵名是以字串的方式儲存的,插入陣列的時候,也是以字串的方式儲存到陣列中去。
使用 es6的set ...
JS基礎篇 JS實現陣列去重方法整理
我們先來看下面的例子,當然 與網路,位址 刪除陣列中多個不連續的陣列元素的正確姿勢 我們現在將陣列中所有的 a 元素刪除 var arr a a b c d a a e g a f arr.foreach function value,index console.log arr a b c d a ...
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...