js 数组去重的方法总结
想沉淀一下自己。代码改变世界~~~
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数组去重的方法还有很多。那些循环巴拉巴拉巴拉 ,就不在这里展示了。这几种方法都是比较新颖的吧。至少自己是这样认为嘚。就像开始说的那样。我想沉淀一下自己了。因为有时候感觉有点迷茫。想通过写博客代码的方式让自己放松一下。找回自己。希望自己能加油坚持下去,以后尽量每周会分享一些自己的心得与收获。我在这里希望自己能成为一个合格的前端人员。谢谢大家。
本文可全文转载,但需要同时保留原作者和出处。