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

2020-04-23  本文已影响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起来吧。

上一篇 下一篇

猜你喜欢

热点阅读