我有一个javascript对象数组。这是一个例子:
[{'first': 'Mary', 'last':'Smith', 'task':'managing'},
{'first': 'Mary', 'last':'Smith', 'task':'research'},
{'first': 'Henry', 'last':'Ford', 'task':'assembling'},
{'first':'Henry', 'last':'Winkler', 'task':'acting;}]
我想找到数组中所有名字和姓氏都不相同的元素。我正在寻找的输出具有以下形式:
[{'first': 'Mary', 'last':'Smith'},
{'first': 'Henry', 'last':'Ford'},
{'first': 'Henry', 'last':'Winkler'}]
如何在javascript中执行此操作?
最佳答案
我将为此使用Map
:
var m = new Map();
arr.forEach(function(obj){
var name = obj.first + ' ' + obj.last;
if(!m.has(name)){
m.set(name, { first : obj.first, last : obj.last});
}
});
var uniques = Array.from(m.values());