JavaScript数组去重
liang👍2020-05-15 21:35:480

JavaScript数组去重

  数组去重核心原理

  - 创建临时变量tmp,存储不重复的元素(以数组元素存储或对象的键来存储);
  - 遍历待去重数组arr,依次判断tmp中是否包含该元素;
  - 若tmp中不存在该元素,则放入;否则跳过不处理。
  1. 全能方法
     ```javascript
     function array_unique (arr) {
     let len = arr.length
     if (!len) {
        return []
     }
     let tmp = []
     for (let i = 0; i < len; i++) {
        // 判断数组arr的元素是否在数组tmp中
        if (tmp.findIndex((v) => JSON.stringify(v) === JSON.stringify(arr[i])) === -1) {
           tmp.push(arr[i])
        }
     }
     return tmp
     }
     ```
    
  2. 使用set数据结构
      // 去除数组的重复成员
      [...new Set(array)]
    

    #### 方法比较

    方法是否可检测 null undefined NaN {} 备注
    indexOf
    includes
    ES6 set数据结构 需要环境支持 es6
    findIndex 需传入特定的callback

参考链接

  1. 掘金 面试官在“逗”你系列:数组去重你会几种呀?

更新时间:2022-04-18 15:43:30

文章分类:JavaScript

喜欢

暂时还没有评论 不如来抢个沙发