【发布时间】:2019-10-03 22:41:57
【问题描述】:
我的数据库收到以下回复:
[
{
"id": 1,
"select": true,
"insert": true,
"update": true,
"delete": false,
"template": {
"id": 1,
"name": "Template 1"
},
"module": {
"id": 1,
"name": "Module 1"
}
}
{
"id": 2,
"select": false,
"insert": true,
"update": true,
"delete": false,
"template": {
"id": 1,
"name": "Template 1"
},
"module": {
"id": 2,
"name": "Module 2"
}
}
{
"id": 3,
"select": true,
"insert": true,
"update": false,
"delete": false,
"template": {
"id": 2,
"name": "Template 2"
},
"module": {
"id": 1,
"name": "Module 1"
}
}
]
所以我的root 对象有两个嵌套对象(template、module)+ 它们自己的属性。
我想将我的数组转换为 template 应该是 root 对象,应该有 modules 属性和模块对象数组。 Module 对象应该有属性 permissions 和 select, insert, update, delete 里面的道具。如您所见,template 对象是重复的。我想避免在我的结果数组中重复 template 对象,它们应该被合并。
所以结果应该是这样的:
[
{
"id":1,
"name":"Template 1",
"modules":[
{
"id":1,
"name":"Module 1",
"permissions":{
"select":true,
"insert":true,
"update":true,
"delete":false
}
},
{
"id":2,
"name":"Module 2",
"permissions":{
"select":false,
"insert":true,
"update":true,
"delete":false
}
}
]
},
{
"id":2,
"name":"Template 2",
"modules":[
{
"id":1,
"name":"Module 1",
"permissions":{
"select":true,
"insert":true,
"update":false,
"delete":false
}
}
]
}
]
如何用 lodash 实现这一点?
【问题讨论】:
标签: javascript node.js lodash