前言:
今天小伙伴们对“字符串去重方法”大概比较注重,同学们都需要剖析一些“字符串去重方法”的相关内容。那么小编在网络上网罗了一些有关“字符串去重方法””的相关知识,希望兄弟们能喜欢,大家快快来学习一下吧!js数组去重方法有很多,常用以下两种;
一、ES5
var arr=[1,2,3,1,4,1,2,1]arr.filter(function(e,i,arr){ //只有首次发现的项这两索引才相等 return i===arr.indexOf(e)})//[1, 2, 3, 4]以上采用indexOf方法判断能满足一般需求了,但是数组中存在NaN、+0、-0这些就会生误判了:JavaScript 在数组中查找存在的项
var arr=[1,2,3,1,4,1,2,1,NaN,+0,-0,NaN]arr.filter(function(e,i,arr){ return i===arr.indexOf(e)})//[1, 2, 3, 4, 0]//+0、-0直接变成0返回 NaN丢失
二、ES6
ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的Set能判断NaN
[...new Set([1,2,3,1,4,1,2,1])]//[1, 2, 3, 4]
[...new Set([1,2,3,1,4,1,2,1,NaN,+0,-0,NaN])]//[1, 2, 3, 4, NaN, 0]
三、拓展
如果是字符串数组去重可以用对象过滤Object对象的一个特点,键名唯一,先添加到对象{}对面,再转回来
var arr=['a','b','a',NaN,NaN]var obj={}for(var i=0;i<arr.length;i++){ obj[arr[i]]='赋值'//随便赋个值}//obj=>{a: '赋值', b: '赋值', NaN: '赋值'}var newArr=[]for(e in obj){ newArr.push(e)}//newArr=>['a', 'b', 'NaN']
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #字符串去重方法