js中的对象数组:删除重复项
Array of objects in js: remove duplicates
我有一个包含许多对象的数组:
[{"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 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]);
我只想在firstName、lastName和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
相关文章:
- Mongoose-在更新中删除数组元素
- 在特定索引处剥离/删除数组中的值
- Framework7:使用swipeout删除数组中的项
- Javascript删除数组中某个位置之后的项
- 通过选中和取消选中复选框来添加和删除数组中的值
- 编写删除数组并添加到列表的函数
- Javascript - 删除数组中的重复值
- 在 Kineticjs 中删除数组中的组
- 如何根据数组内容添加/删除数组中的元素
- 用于删除数组中的零的Javascript函数代码
- Javascript-仅使用pop()方法删除数组中的负值
- 删除数组元素并将它们添加回原来的位置
- 如果一个键匹配,如何删除数组元素
- 无法使用拼接删除数组中的元素
- 如何从ko.computed中删除数组项
- 删除数组中的重复项,为什么此代码不起作用
- 使用另一个数组按索引删除数组中的对象
- 在 jquery 中,如何通过索引[“键”] 或值删除数组元素
- 使用 Lodash 删除数组中的元素
- 按索引删除数组元素