[javascript] 移除陣列物件裡有重複的值的方法

分享:

如果我們要移除陣列裡的某一個物件有重複的值的話,可以使用以下的 function 去做處理:

function removeDuplicates(originalArray, prop) {
     var newArray = [];
     var lookupObject  = {};

     for(var i in originalArray) {
        lookupObject[originalArray[i][prop]] = originalArray[i];
     }

     for(i in lookupObject) {
         newArray.push(lookupObject[i]);
     }
      return newArray;
}

 

所以就是把原始陣列跟你要移除重複的值的 key 帶進去就可以了,比如說我們有一個陣列物件像這樣:

let originData=[
  {
    "name": "John",
    "age": 18
  },
  {
    "name": "May",
    "age": 21
  },
  {
    "name": "John",
    "age": 20
  },
  {
    "name": "Sue",
    "age": 17
  }
]

 

帶進去:

removeDuplicates(originData, "name")

 

最後得到的陣列就是這樣:

[
  {
    "name": "May",
    "age": 21
  },
  {
    "name": "John",
    "age": 20
  },
  {
    "name": "Sue",
    "age": 17
  }
]

 

參考來源

removeDuplicates.js

 

 

課程推薦

和我們交流

加入我們的社群,裡面會有一些技術的內容、有趣的技術梗,以及職缺的分享,歡迎和我們一起討論。