数组去重这个问题无论是在面试当中,还是实际项目中,出现的频率都挺多的,而我们以往的解决方式,就是通过新建一个空的数组,通过indexOf()
方法进行新数组和原数组的子元素比较,来得到一个没有重复子元素的新数组
function unique(Arr){
var arr = [];
for(var i = 0; i < Arr.length; i ) {
if(arr.indexOf(Arr[i])==-1) {
arr.push(Arr[i]);
}
}
return arr;
}
一共 9 行代码,也不是很多,但在 ES6 中,新增的Set()
对象和Array.from()
方法,可以让我们通过两行代码,就能实现数组去重
Set 对象允许你存储任何类型的唯一值,而 Set 中的值总是唯一的,所以会判断两个值是否相等,Set 返回的是对象,我们还需要通过Array.from()
方法,在一个类数组或可迭代对象中,创建一个新的数组实例
var arr = [1,1,2,3,4,6,7,6];
var Arr = Array.from(new Set(arr));