使用ES6語法處理數(shù)組基本類型,引用類型的去重

數(shù)組去重的方法有很多種,下面給大家?guī)讉€使用es6去重的方法

1.數(shù)組去除重復(fù)基本類型

利用 SetArray.from 兩個es6的語法可以快速完成基本類型的數(shù)組去重
Set 是一種新的數(shù)據(jù)結(jié)構(gòu),它可以接收一個數(shù)組或者是類數(shù)組對象,自動去重其中的重復(fù)項目,使用方式如下

new Set(arr)

不過需要注意的是,利用 Set 去重返回的是一個 Json 對象,并非數(shù)組,這時候我們可以使用 Array.from
Array.from 可以把類數(shù)組對象、可迭代對象轉(zhuǎn)化為數(shù)組,封裝成函數(shù)如下

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

2.數(shù)組去除引用類型

如果是需要去重引用類型的話, 則可以使用 reduce

reduce 方法對數(shù)組中的每個元素執(zhí)行一個由您提供的reducer函數(shù)(升序執(zhí)行),將其結(jié)果匯總為單個返回值

reducer 函數(shù)接收4個參數(shù):

  • Accumulator (acc) (累計器)
  • Current Value (cur) (當(dāng)前值)
  • Current Index (idx) (當(dāng)前索引)
  • Source Array (src) (源數(shù)組)
    您的 reducer 函數(shù)的返回值分配給累計器,該返回值在數(shù)組的每個迭代中被記住,并最后成為最終的單個結(jié)果值。

實例如下:

  function distinct(arr){
    var result = []
    var obj = {}
    arr.reduce((item,next)=>{
      // 這里判斷的是數(shù)組引用類型中的ID, 各位可自行替換判斷依據(jù)
      obj[next.id]?'':obj[next.id]=true&&result.push(next)
    })
    return result
  }

以上就是數(shù)組去重的幾個小技巧了,get起來吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容