set 数组去重
2018-03-22 本文已影响0人
月半女那
ES6出现了一个新的方法,在面试中个多次被提问到那就是数组去重
1.通过Set去重
例如:var arr = [3,4,5,5,6,,6,7,7]; //需要去重的数组
var set = new Set(arr); // {3,4,5,6,7}
var newArry = Array.from(set) // 将set转换成数组[3,4,5,6,7]
2.遍历去重(通过indexOf下标属性来查询)
var arr = [3,4,5,5,6,,6,7,7];
var newArray = [];
for(vari = 0; i < arr.length; i++){
if ( newArray.indexOf( arr[i]) === -1 ))
newArray.push(arr[i])
}
3.通过filter和includes
include(es6里面提供的array.includes()函数,来判断数组里面是否包含这个元素,如果有返回true;没有返回false;它和indexof唯一的区别是indexof可以定位这个元素再数组的位置,而array.includes()值能够知道这个数组是否包含这个元素,更加语义化)
unique7(arr) => {
var res = [];
arr.forEach(item =>{
res.includes(item) ? ' ':res.push(item)
});
return res;
}