欢迎光临散文网 会员登陆 & 注册

千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

2023-07-12 21:45 作者:乔妮娜丶匕漾  | 我要投稿

数组的去重

方法一:使用Set数据结构

可以利用Set数据结构的特性来实现数组的去重,Set中存储的值都是唯一的。

function uniqueBySet(arr) {
  return [...new Set(arr)];
}

const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = uniqueBySet(arr);
console.log(uniqueArr);  // [1, 2, 3, 4, 5]


方法二:使用filter方法和indexOf方法

通过filter方法结合indexOf方法,可以筛选出数组中第一次出现的元素,从而实现数组的去重。

function uniqueByFilter(arr) {
  return arr.filter((item, index) => arr.indexOf(item) === index);
}

const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = uniqueByFilter(arr);
console.log(uniqueArr);  // [1, 2, 3, 4, 5]


方法三:使用reduce方法和includes方法

通过reduce方法结合includes方法,可以迭代数组并将不重复的元素添加到结果数组中,从而实现数组的去重。

function uniqueByReduce(arr) {
  return arr.reduce((result, item) => {
    if (!result.includes(item)) {
      result.push(item);
    }
    return result;
  }, []);
}

const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = uniqueByReduce(arr);
console.log(uniqueArr);  // [1, 2, 3, 4, 5]


方法四:使用Map数据结构

可以利用Map数据结构的特性,其中的键值对可以保证键的唯一性,从而实现数组的去重。

function uniqueByMap(arr) {
  const resultMap = new Map();
  const uniqueArr = [];
  for (const item of arr) {
    if (!resultMap.has(item)) {
      resultMap.set(item, true);
      uniqueArr.push(item);
    }
  }
  return uniqueArr;
}

const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = uniqueByMap(arr);
console.log(uniqueArr);  // [1, 2, 3, 4, 5]


以上就是几种常用的数组去重方法,根据具体需求选择合适的方法,可以方便地实现数组去重操作。

千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip的评论 (共 条)

分享到微博请遵守国家法律