首页 > 程序开发 > web前端 > JavaScript >

JavaScript数组去重

2017-09-05

JavaScript数组去重。1 Set配合扩展操作符…或Array from

1. Set配合扩展操作符…或Array.from

var arr = [1,1,2,2,3,4,4];

var set = new Set(arr);  //Set(4) {1, 2, 3, "a"}
var newArr = [...set];//(4) [1, 2, 3, 4],...扩展操作符内部用for of实现
var newArr2 = Array.from(set);//(4) [1, 2, 3, 4]

({}).toString.call(set); //"[object Set]"

2. filter

arr.filter(function(value,index,arr){
    return arr.indexOf(value) === index;
})

3.利用对象

var arr=[1, 2, 3, 3, 3, '0', '1', '2', '测试', '重复', '重复', NaN, NaN, false, false];

var obj={};
var temp=[];
for(var i=0;i

4.先排序再去重

var arr=[1, 2, 3, 3, 3, '0', '1', '2', '测试', '重复', '重复', NaN, NaN, false, false];
arr.sort();
//console.log(arr);
var temp=[];
while(arr.length>0){
  if(Object.is(arr[0],arr[1])){
    arr.shift();
  }else{
    temp.push(arr.shift());
  }
}
console.log(temp);

5.for in和includes

var arr=[1, 2, 3, 3, 3, '0', '1', '2', '测试', '重复', '重复', NaN, NaN, false, false];
var temp=[];
for(var i=0;i
相关文章
最新文章
热点推荐