如果我們要移除陣列裡的某一個物件有重複的值的話,可以使用以下的 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 } ]
參考來源