我有两个数组:
var odd = [
{ name : "1", extraProp1 : "propValue1" },
{ name : "3", extraProp1 : "propValue2"}
];
var even = [
{ name : "1", extraProp2 : "prop1" },
{ name : "2", extraProp2 : "prop2"},
{ name : "4", extraProp2 : "prop3" }
];
如何创建一个新数组,结果如下:
var result = [{ name : "1", extraProp1 : "propValue1", extraProp2 : "prop1"}];
需要根据 name 属性添加它们。
编辑:这是参考合并 2 个对象数组 https://stackoverflow.com/questions/7146217/merge-2-arrays-of-objects我也看过:如何动态合并两个 JavaScript 对象的属性? https://stackoverflow.com/questions/171251/how-can-i-merge-properties-of-two-javascript-objects-dynamically?rq=1
但是,当我这样做时
function merge(a, b, prop){
var reduced = a.filter( aitem => b.find ( bitem => aitem[prop] === bitem[prop]) );
return reduced;
}
console.log( "ES6", merge(odd, even, "name") );
它仅从一个数组获取属性。