我正在尝试使用lodash javascript库合并这2个对象数组,但在合并过程中包含另一个数组的Subcategories属性未被合并。这是要合并的数组。
var menu1 = [
{
"PageName": "Designer",
"Category": "Designer",
"LinkTo": "/",
"SubCategories": []
},
{
"PageName": "CMS",
"Category": "CMS",
"LinkTo": "",
"SubCategories": [
{
"Category": "Template DOP",
"LinkTo": "/sendoutboundmessages"
}
]
}];
var menu2 = [
{
"PageName": "CMS",
"Category": "CMS",
"LinkTo": "",
"SubCategories": [
{
"Category": "Cataloghi",
"LinkTo": "/catalogs-manager"
}
]
}
];
我正在尝试使用lodashJS的以下方法
const merged = _(menu1)
.keyBy('PageName')
.merge(_.keyBy(menu2, 'PageName'))
.values()
.value();
但它无法处理包含另一个数组的SubCategory属性。
当前的输出结果如下:
[
{
"PageName": "Designer",
"Category": "Designer",
"LinkTo": "/",
"SubCategories": []
},
{
"PageName": "CMS",
"Category": "CMS",
"LinkTo": "",
"SubCategories": [
{
"Category": "Cataloghi",
"LinkTo": "/catalogs-manager"
}
]
}
]
我希望您能提供以下输出:
[
{
"PageName": "Designer",
"Category": "Designer",
"LinkTo": "/",
"SubCategories": []
},
{
"PageName": "CMS",
"Category": "CMS",
"LinkTo": "",
"SubCategories": [
{
"Category": "Cataloghi",
"LinkTo": "/catalogs-manager"
},
{
"Category": "Template DOP",
"LinkTo": "/sendoutboundmessages"
}
]
}
]
感谢您的帮助。
SubCategories
属性正在合并,但您需要2个SubCategories
数组的联合。根据Lodash文档,“数组和普通对象属性递归合并”,“后续源覆盖先前源的属性分配”。 - Chris HG