专业的JAVA编程教程与资源

网站首页 > java教程 正文

JavaSctipt数组去重

temp10 2024-11-22 20:59:22 java教程 13 ℃ 0 评论

js数组去重方法有很多,常用以下两种;

一、ES5

JavaSctipt数组去重

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]
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']

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表