我有一个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中执行此操作?
答案 0 :(得分:2)
我会使用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());
答案 1 :(得分:1)
这是推出新ES6套装的好时机
var s = new Set();
arr.forEach(a => s.add({'first':a.first, 'last': a.last}))
var myArr = Array.from(s);
答案 2 :(得分:0)
@Minusfour你就在我前面。我得到了同样的解决方案。
i