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]
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答873 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决