我有一个包含多个对象的数组:
[{"firstName":"an","lastName":"something","linkedInID":"..."},{"firstName":"stefanie","lastName":"doe","linkedInID":"..."},{"firstName":"john","lastName":"something","linkedInID":null},{"firstName":"timmy","lastName":"test","linkedInID":null},{"firstName":"john","lastName":"something","linkedInID":null}, ... ]
可能存在重复项,我希望删除它们。
This答案让我明白了,我可以根据姓氏删除重复项:
var arr = {};
for ( var i=0, len=attendees_in_one_array.length; i < len; i++ )
arr[attendees_in_one_array[i]['lastName']] = attendees_in_one_array[i];
attendees_in_one_array = new Array();
for ( var key in arr )
attendees_in_one_array.push(arr[key]);
我只想在名字、姓氏和 linkedInID 完全相同时删除一个人。
我尝试将 arr[attendees_in_one_array[i]['lastName']] = attendees_in_one_array[i];
更改为 arr[attendees_in_one_array[i]['lastName'] && attendees_in_one_array [i]['firstName'] && attendees_in_one_array[i]['linkedInID']] = attendees_in_one_array[i];
但这不起作用。
谁能帮我解决这个问题?
最佳答案
您可以通过 3 个值的组合形成唯一键
firstName + lastName + linkedInID
像这样:
var arr = [{"firstName":"an","lastName":"something","linkedInID":"..."},{"firstName":"stefanie","lastName":"doe","linkedInID":"..."},{"firstName":"john","lastName":"something","linkedInID":null},{"firstName":"timmy","lastName":"test","linkedInID":null},{"firstName":"john","lastName":"something","linkedInID":null} ]
var ulist = {}, uarr =[];
arr.forEach(function(k) { ulist[k.firstName + k.lastName + k.linkedInID] = k; });
for(var i in ulist) uarr.push(ulist[i]);
// uarr contains your desired result
关于javascript - js中的对象数组: remove duplicates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34566658/