数组去重
数组去重的两种方法
一、利用数组的indexOf方法实现
原理:数组的indexOf(a);方法会返回字符a所在数组中的位置。当返回-1时,代表数组中不存在a这个字符;
var str = [1,2,2,2,3,4,5,5,6,7];
var backStr = [];
for(var i=0;i<str.length;i++){
if( backStr.indexOf(str[i]) < 0 ){
backStr.push(str[i]);
}
}
console.log(backStr);//1,2,3,4,5,6,7
缺点:性能上不是很好,需要使用for循环去遍历数组再添加;
二、使用ES6中set()和Array.from()方法
原理:set是一种新的数据结构,它可以接收一个数组或者是类数组对象,自动去重其中的重复项目.
var str = [1,2,2,2,3,4,5,5,6,7];
console.log(new Set(str));//{1,2,3,4,5,6,7}
直接使用set方法返回的是一个对象;
最后我们要的是返回数组,所以需要使用Array.from()将对象转化成数组;
var str = [1,2,2,2,3,4,5,5,6,7];
console.log(Array.from(new Set(str)));//[1,2,3,4,5,6,7]