军事最新消息中国关键词优化公司费用多少
1、数组去重我们想的的就是冒泡法。每一个都和后面的相比较。相同就去掉不同继续。
var array1 = [1, 1, 1, 2, 3, 2, 4];
for(var i=0;i<array1.length;i++) {for(j=i+1;j<array1.length;j++){if(array1[i]==array1[j]){array1.splice(i,1);i--;//删除一个以后,这个i之后的所有下标都减去了1.}}
}
console.log(array1);
结果是
2、如果使用forEach也可以.这个es5的写法
var array1 = [1, 1, 1, 2, 3, 2, 4];
var tmpObj = {};
var result = [];
array1.forEach(function(a) {var key = (typeof a) + a;if (!tmpObj[key]) {tmpObj[key] = true;result.push(a);}
});
console.log(result)
3.使用es6的set 和Array.from结合起来就能实现
es6使用Set
数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数
let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];let set = new Set(array);console.log(set)
得到的是一个对象。然后使用
Array.from
,可以把类似数组的对象转换为数组,
let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];let set = new Set(array);let newArray=Array.from(set)console.log(newArray);
最后的结果是数组啦。
还可以使用...像这样的运算符来写
let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];var a=[...new Set(array)];console.log(a);