Javascript 如何合并对象-lodash?
我最近开始使用,我想合并以下对象 对象: var firstObj= var secondObj= 合并对象/结果: 我所尝试的:Javascript 如何合并对象-lodash?,javascript,lodash,Javascript,Lodash,我最近开始使用,我想合并以下对象 对象: var firstObj= var secondObj= 合并对象/结果: 我所尝试的: 如果您有任何建议,请在您可以阅读的文档中提供,您必须使用定制器功能为您定制阵列。() 此方法如下所示: function customizer(objValue, srcValue) { if (_.isArray(objValue)) { return objValue.concat(srcValue); } } 下面是您的示例中使用的: 如
如果您有任何建议,请在您可以阅读的文档中提供,您必须使用定制器功能为您定制阵列。() 此方法如下所示:
function customizer(objValue, srcValue) {
if (_.isArray(objValue)) {
return objValue.concat(srcValue);
}
}
下面是您的示例中使用的:
如果希望更好地了解合并方法内部发生的情况:
Merge以传递的第一个对象为基础。然后它循环遍历它所传递的其他对象中的所有键(按参数顺序)。它做两件事:
- 如果第一个对象不包含键,它将添加键及其值
- 如果第一个对象已经包含该键,它将覆盖其值
{
"1" : [
{
name: "gautham",
age : 17
},
{
name: "mathan",
age : 19
}
],
"2" : [
{
name: "ashok",
age : 16
},
{
name: "dharani",
age : 20
}
]
}
{
"1" : [
{
name: "karthick",
age : 25
},
{
name: "arun",
age : 20
},
{
name: "gautham",
age : 17
},
{
name: "mathan",
age : 19
}
]
"2" : [
{
name: "varun",
age : 25
},
{
name: "smith",
age : 20
},
{
name: "ashok",
age : 16
},
{
name: "dharani",
age : 20
}
]
}
function customizer(objValue, srcValue) {
if (_.isArray(objValue)) {
return objValue.concat(srcValue);
}
}
var output = {};
var firstObjKeys = Object.keys(firstObj);
var secondObjKeys = Object.keys(secondObj).filter(function(val){
return firstObjKeys.indexOf(val) == -1;
});
var allKeys = firstObjKeys.concat(secondObjKeys);
allKeys.forEach(function(val){
var firstArr = firstObj[val] || [];
var secondArr = secondObj[val] || [];
output[val] = firstArr.concat(secondArr);
})
document.body.innerHTML += JSON.stringify(output,0,4)