var arr=[1,2,3,4,3,3,3]; 去除arr的所有的3,
期待值: arr=[1,2,4];
该怎么做?有没有简单便捷的方法?
function removeRepitition(arr){
var obj = {},newArr = [];
for(var i=0,length=arr.length;i<length;i++){
if (!obj[arr[i]]) {
obj[arr[i]] = {
val: arr[i],
remove: false
}
}else{
obj[arr[i]] = {
val: arr[i],
remove: true
}
}
}
for(item in obj){
if (!obj[item].remove) {
newArr.push(obj[item].val)
}
}
return newArr
}
利用es6 的新增数据结构set,可以快速去重:
let arr = [1,3,3,5,5];
let newArr = [...new Set(arr)];
console.log(newArr);//[1,3,5]
10 回答11.4k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.9k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决