下面是对于“JavaScript数组去重的6个方法”的完整攻略。
方法一:Set去重
使用ES6的Set,可以直接将数组转化为Set集合,再转化回数组的时候就自然地去重了。
const arr = [1,2,3,1,2,4];
const newArr = [...new Set(arr)];
console.log(newArr); // [1,2,3,4]
方法二:indexOf去重
遍历数组,每个元素与新数组中的元素比较,如果不在新数组中,就将其加入新数组中。
const arr = [1,2,3,1,2,4];
const newArr = [];
for(let i = 0; i < arr.length; i++){
if(newArr.indexOf(arr[i]) === -1){
newArr.push(arr[i]);
}
}
console.log(newArr); // [1,2,3,4]
方法三:foreach和includes去重
遍历数组,对于每个元素进行判断,如果不在新数组中,就将其加入新数组中。
const arr = [1,2,3,1,2,4];
const newArr = [];
arr.forEach(item => {
if(!newArr.includes(item)){
newArr.push(item);
}
});
console.log(newArr); // [1,2,3,4]
方法四:filter去重
使用ES6的filter方法,遍历数组,将满足条件的元素加入新数组中。
const arr = [1,2,3,1,2,4];
const newArr = arr.filter((item,index)=>{
return arr.indexOf(item) === index;
});
console.log(newArr); // [1,2,3,4]
方法五:对象键值对去重
将数组中的每个元素作为对象的键(key)和值(value)值,由于对象的键名不能重复,会自动去重。
const arr = [1,2,3,1,2,4];
const obj = {};
const newArr = [];
arr.forEach(item => {
if(!obj[item]){
obj[item] = true;
newArr.push(item);
}
})
console.log(newArr); // [1,2,3,4]
方法六:reduce去重
使用ES6的reduce方法,遍历数组,将满足条件的元素加入新数组中。
const arr = [1,2,3,1,2,4];
const newArr = arr.reduce((pre,cur)=>{
if(!pre.includes(cur)){
pre.push(cur);
}
return pre;
},[]);
console.log(newArr); // [1,2,3,4]
以上就是JavaScript数组去重的六个方法,希望能对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript数组去重的6个方法 - Python技术站