关键词

JavaScript数组去重的6个方法

下面是对于“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数组去重的六个方法,希望能对大家有所帮助。

本文链接:http://task.lmcjl.com/news/10079.html

展开阅读全文