美文网首页
使用ES6语法处理数组基本类型,引用类型的去重

使用ES6语法处理数组基本类型,引用类型的去重

作者: 刘圣凯 | 来源:发表于2020-04-23 18:32 被阅读0次

    数组去重的方法有很多种,下面给大家几个使用es6去重的方法

    1.数组去除重复基本类型

    利用 SetArray.from 两个es6的语法可以快速完成基本类型的数组去重
    Set 是一种新的数据结构,它可以接收一个数组或者是类数组对象,自动去重其中的重复项目,使用方式如下

    new Set(arr)
    

    不过需要注意的是,利用 Set 去重返回的是一个 Json 对象,并非数组,这时候我们可以使用 Array.from
    Array.from 可以把类数组对象、可迭代对象转化为数组,封装成函数如下

    function distinct(arr){
      return Array.from(new Set(arr))
    }
    

    2.数组去除引用类型

    如果是需要去重引用类型的话, 则可以使用 reduce

    reduce 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值

    reducer 函数接收4个参数:

    • Accumulator (acc) (累计器)
    • Current Value (cur) (当前值)
    • Current Index (idx) (当前索引)
    • Source Array (src) (源数组)
      您的 reducer 函数的返回值分配给累计器,该返回值在数组的每个迭代中被记住,并最后成为最终的单个结果值。

    实例如下:

      function distinct(arr){
        var result = []
        var obj = {}
        arr.reduce((item,next)=>{
          // 这里判断的是数组引用类型中的ID, 各位可自行替换判断依据
          obj[next.id]?'':obj[next.id]=true&&result.push(next)
        })
        return result
      }
    

    以上就是数组去重的几个小技巧了,get起来吧。

    相关文章

      网友评论

          本文标题:使用ES6语法处理数组基本类型,引用类型的去重

          本文链接:https://www.haomeiwen.com/subject/wkxzihtx.html