#javascript #jquery #arrays #object
#javascript #jquery #массивы #объект
Вопрос:
У меня есть два объекта 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"}
]
Комментарии:
1. Я сделал вам фрагмент и исправил ваш объект.
2. @mplungjan спасибо за ответ, но мой ожидаемый результат отличается,
3. Я не исправил вашу ПРОБЛЕМУ, только исправил ваш НЕДОПУСТИМЫЙ ОБЪЕКТ
4. проверьте мой stackblitz
Ответ №1:
вы можете проверить этот код, я исправил ваш объект, и вы можете найти свое ожидание в консоли
Комментарии:
1. Ответы только по ссылке не приветствуются. Хороший ответ стоит сам по себе и является не просто кодом, он также объясняет, как он устранил проблему.
2. Обескураженный @jon-p !! Я думаю, ему нужна помощь, а не история, чтобы ничего не сказать 🙂