我使用Backbone/lodash作为项目,我希望根据特定值合并2个对象数组。在下面的例子中,合并是基于具有2个不同键(id和数字)的相同值。通过加入值用lodash合并2个不同键的对象数组
例
var people = [
{
id: "1",
name: "John"
},
{
id: "2",
name: "Jane"
}
];
var data = [
{
number: "2",
role: "Designer"
},
{
number: "1",
role: "Developer"
}
];
// Outpout
var merge = [
{
id: "1",
number: "1",
name: "John",
role: "Developer"
},
{
id: "2",
number: "2",
name: "Jane",
role: "Designer"
}
];
@YosvelQuintero它是如何更好地在每个'data'迭代项目,每个项目在'people'上迭代一次以找到匹配的项目?除了这会将算法的复杂性从线性增加到二次方法之外,您的解决方案还会使“人”中的对象发生变化。我看到的唯一优点是您的解决方案隐藏了'Array.prototype.find()'背后的一些复杂性。 – Timo
我的解决方案只对所有'data'进行一次迭代,并执行'Array.find()'。查找将返回与提供的函数匹配的第一个元素。比设置对象属性并对“合并数组”进行推送。这些都需要 –
嗯,是的。但是,如果不通过迭代数组,你认为'find()'是否工作? – Timo