我有一个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());

09-25 17:05
查看更多