js 數組去重的方法總結
阿新 • • 發佈:2018-06-14
index 直接 unique 都是 沈澱 spa clas 轉換 見證
想沈澱一下自己。代碼改變世界~~~
1、利用Array.from代碼如下
1 var arr = [1,2,3,4,3,2,1] 2 function unique(arr){ 3 return Array.from(new Set(arr)) 4 } 5 console.log(unique(arr))
2、利用es6(...)拓展運算符。demo
1 var arr = [1,2,3,4,3,2,1] 2 function unique(arr){ 3 return [...new Set(arr)] 4} 5 console.log(unique(arr))
3、利用Object.keys() ;直接上代碼
var obj = {},newArr,arr = [1,2,3,4,5,3,2,1]; for (var i = arr.length - 1; i >= 0; i--) { obj[arr[i]] = null; }; newArr = Object.keys(obj); console.log(newArr)//這裏有個問題就是會轉換成字符串。自己看情況使用吧。當然也是可以處理的
4、比較中規中矩的方法。和第三種差不多()。
var arr = [1,2,3,4,3,2,1] var o = {},arr1 = []; for (var i = arr.length - 1; i >= 0; i--) { if(!o[arr[i]]){ o[arr[i]] = true; arr1.push(arr[i]) } }; console.log(arr1)
5、這個是我突然有次發現的。來啦(下面就是見證奇跡的時刻)(這是自己看完mdn對於reduce的介紹以後,自己想到的,結果實現了。感覺很有成就。啦啦啦啦啦)
var arr = [1,2,3,4,3,2,1] var newarr = arr.reduce(function(prev,now){ if(prev.indexOf(now)<0){prev.push(now)} return prev },[]) console.log(newarr)
其實,對於js數組去重的方法還有很多。那些循環巴拉巴拉巴拉 ,就不在這裏展示了。這幾種方法都是比較新穎的吧。至少自己是這樣認為嘚。就像開始說的那樣。我想沈澱一下自己了。因為有時候感覺有點迷茫。想通過寫博客代碼的方式讓自己放松一下。找回自己。希望自己能加油堅持下去,以後盡量每周會分享一些自己的心得與收獲。我在這裏希望自己能成為一個合格的前端人員。謝謝大家。
本文可全文轉載,但需要同時保留原作者和出處。
js 數組去重的方法總結