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