教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

js数组去重,能用几种方法实现?

更新时间:2023年09月18日10时53分 来源:传智教育 浏览次数:

好口碑IT培训

  在JavaScript中,有多种方法可以实现数组去重。以下是一些常用的方法,每种方法都附带了详细说明和示例代码:

  1.使用Set(ES6):

  Set是ES6引入的数据结构,它只包含不重复的值。可以将数组转换成Set,然后将其再次转换回数组,以去除重复项。

const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr); // [1, 2, 3, 4, 5]

  2.使用filter()方法:

  使用Array的filter()方法,创建一个新数组,只保留第一次出现的每个元素。

const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = arr.filter((item, index, self) => self.indexOf(item) === index);
console.log(uniqueArr); // [1, 2, 3, 4, 5]

  3.使用reduce()方法:

  使用Array的reduce()方法,构建一个新数组,只添加第一次出现的元素。

const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = arr.reduce((acc, current) => {
  if (!acc.includes(current)) {
    acc.push(current);
  }
  return acc;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]

  4.使用for循环:

  使用for循环遍历数组,将不重复的元素添加到新数组中。

const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
  if (uniqueArr.indexOf(arr[i]) === -1) {
    uniqueArr.push(arr[i]);
  }
}
console.log(uniqueArr); // [1, 2, 3, 4, 5]

  5.使用Map(ES6):

  使用Map数据结构,遍历数组并将元素作为键添加到Map中,然后将Map的键转换回数组。

const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = [...new Map(arr.map(item => [item, item])).values()];
console.log(uniqueArr); // [1, 2, 3, 4, 5]

  这些都是常见的数组去重方法,我们可以根据实际的需求选择其中一个来使用。使用Set通常是最简单和最高效的方法,但它不会保留原始数组的顺序。如果需要保留顺序,可以使用其他方法。

0 分享到:
和我们在线交谈!