1. 程式人生 > >使用reduce的方法實現對象數組去重

使用reduce的方法實現對象數組去重

工作 .html [] bsp clas urn bubuko 對象 con

在開發中和面試當中,數組去重問題往往是受寵兒,那用最短的代碼解決這個問題會使效率得到更大的提升。普通的數組,我們可以通過filter過濾方法進行去重,詳情見本人博客:http://www.cnblogs.com/mmykdbc/p/8422419.html

那當是一個對象數組的時候呢,filter就顯得相形見絀了,再用那種笨的一個一個遍歷的方法會使得工作效率大打折扣,這個時候,需要用到reduce疊加方法,上代碼:

  let arr = [{"all": 1}, {"all": 2}, {"all": 3}, {"all": 4}, {"all": 1}];
  let hash = {};
  arr = arr.reduce((item, next) => {
    hash[next.all] ? "" : hash[next.all] = true && item.push(next);
    return item
  }, []);
  console.log(arr);

  結果:

技術分享圖片

使用reduce的方法實現對象數組去重