JS基礎入門篇(十五) 陣列去重

2021-09-13 19:43:06 字數 857 閱讀 7273

目的:把陣列中重複的內容去掉。

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