数组去重

对数组进行去重的多种方式

数组去重的两种思路:

  1. 对原数组进行循环,如果输出数组内没有该元素则追加至输出数组。
  2. 使用ES6的新数组结构,利用语法自身键不可重复的特性实现去重。

map 循环去重

function unique(arr){
  // 如果不是数组则直接返回
    if(!Array.isArray(arr)) return;
  const outputArr = [];
  // 循环输入数组,如果输出数组中没有该元素,则追加至输出数组内
  arr.map( (item,index)=>{
    if( outputArr.indexOf(item) === -1 ){
       outputArr.push( item )
    }
  });
  return outputArr;
}

filter 循环去重

function unique(arr){
    if(!Array.isArray(arr)) return;
    return arr.filter((item,index,arr)=>{
        // 获取元素在数组中第一次出现的位置,如果和自身index相同,则返回 true
        return arr.indexOf(item,0) === index;
      })
}

Set 去重

ES6 提供了新的数据结构 Set,类似于数组,但是成员不得为重复的值

function unique(arr){
  return [...new Set(arr)];
}
作者

BiteByte

发布于

2020-08-08

更新于

2024-11-15

许可协议