JS数组去重的4种办法

有多种方法可以对数组进行去重,下面介绍的是常见的四种办法:

  1. 使用 Set 数据结构:Set 是 ES6 引入的一种新的数据结构,它存储唯一的值,可以利用它的去重特性来对数组进行去重。

    const array = [1, 2, 2, 3, 3, 4, 5];
    const uniqueArray = [...new Set(array)];
    console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
    
  2. 使用 filter 方法:使用数组的 filter 方法结合 indexOf 可以遍历数组,对每个元素进行判断,只保留第一次出现的元素,从而达到去重的效果。

    const array = [1, 2, 2, 3, 3, 4, 5];
    const uniqueArray = array.filter((value, index, self) => {
      return self.indexOf(value) === index;
    });
    console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
    
  3. 使用 reduce 方法:使用数组的 reduce 方法遍历数组,将每个元素存储在一个新数组中,但只存储第一次出现的元素,从而实现去重。

    const array = [1, 2, 2, 3, 3, 4, 5];
    const uniqueArray = array.reduce((acc, curr) => {
      if (!acc.includes(curr)) {
        acc.push(curr);
      }
      return acc;
    }, []);
    console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
    
  4. 使用 Map 数据结构:使用 Map 数据结构存储数组中的元素,并使用元素的值作为键,对应的布尔值表示是否出现过。然后从 Map 中提取唯一的键集合,即得到去重后的数组。

    const array = [1, 2, 2, 3, 3, 4, 5];
    const uniqueArray = Array.from(new Map(array.map((value) => [value, true])).keys());
    console.log(uniqueArray); // Output: [1, 2, 3, 4, 5
    
posted @ 2023-10-09 21:01  张吱吱  阅读(42)  评论(0编辑  收藏  举报