js数组去重的三种方法
方法一
使用set方法
- 构造Set()的实例,使用Set的add方法添加元素, 因为Set 中的元素是唯一的,所以目前是去重的对象
- 使用Array.from把对象转为数组就ok
function removeRepete(array){
let newSet=new Set()
array.forEach(v => {
newSet.add(v)
});
return Array.from(newSet)
}
console.log(removeRepete([1,1,2,2,3,4]));
//结果为[1,2,3,4]
方法二
使用filter方法
- 原理是使用indexOf,查找出每一个元素第一次出现的索引值与当前位置进行比较,这样就可以排除元素第二次出现或二次以上的元素
function filterRemove(array){
let newArray=array.filter((v,index,self)=>{
return index==self.indexOf(v)
})
return newArray
}
console.log(filterRemove([1,1,2,3,2,5,6,6,7]));
//返回结果是[1,2,3,5,6,7]
方法三
使用for循环
- 原理是把数组的值添加到对象的键上,再进行判断该键是否存在,再借助对象的Object.keys(obj)返回对象所有键的数组实现数组去重
function forRemove(array){
let obj={}
array.forEach(v=>{
if(!obj[v])
{
obj[v]=true
}
})
return Object.keys(obj)
}
console.log(forRemove(['dd','dd','ss','kk']));
//['dd','ss','kk']