javascript - 如何比较对象数组中的键并使用javascript对其进行修改
问题描述
我有两个对象 obj1 和 obj2,如何循环遍历数组键children
,如果代码名称匹配,则在对象 obj2 中添加名称键,获取对象。
如何遍历对象对象并匹配键并按下键以在javascript中获取新对象
function newObject(obj1, obj2) {
var result = obj1.map(e => {
if ('children' in e)
e.children = e.children.map(child => {
if ('children' in child)
child.children = child.children.map(c => {
name: c.name
});
return child;
});
return e;
})
return result
}
var obj1 = [{
"id": 1,
"item": "node1",
"children": [{
"id": 2,
"code": "countries",
"title": "Country",
"children": [{
"cid": 12,
"code": "S1",
"name": "SG",
"children": [{
"id": 4,
"code": "C1",
"name": "City"
}]
},
{
"cid": 13,
"code": "S2",
"name": "TH"
}
]
},
{
"id": 2,
"code": "Groceries",
"title": "Grocery",
"children": [{
"cid": 11,
"code": "G1",
"name": "Fruits"
},
{
"cid": 10,
"code": "G2",
"name": "Vegetables"
}
]
}, {
"id": 3,
"code": "lists",
"title": "Option"
}
]
}];
var obj2 = [{
id: 1,
code: "G1",
status: "active"
},
{
id: 2,
code: "S2",
status: "inactive"
},
{
id: 3,
code: "C1",
status: "active"
}
];
console.log(this.newObject(obj1, obj2));
预期产出
[
{id:1, name: "Fruits",code:"G1", status:"active"},
{id:2, name: "TH",code:"S2", status:"inactive"},
{id:3, name: "city",code:"C1", status:"active"}
]
解决方案
您可以检查此代码 我修复了您的对象,您可以在控制台中找到您的期望
推荐阅读
- go - 如何循环通过通道接收的 NATS 消息
- php - Laravel 7 - 数组到数据库(复选框)
- symfony - 未检索到集合类型中的额外未映射字段
- php - 删除评论中的“回复”一词
- output - 在执行下面的代码时,它不会在输出控制台中打印标题和 url,也不会显示错误
- javascript - 通过获取两个日期之间的毫秒差值,使用 Moment.js 显示倒计时 - ReactJS
- node.js - 如何根据上一个提示nodejs的结果回答下一个提示
- python - 在 Django 中将自定义函数放在哪里?
- python - subprocess.call() 从子文件夹运行脚本?
- python - 如何自动创建 1500 个 Google Cloud VM 实例?