Я пытаюсь объединить два массива на основе ключа «parent_id». Вот массивы и требуемый выход:Объединить 2 массива на основе ключа javascript
Массив 1: Элемент группы:
var itemGroups = [
{
"id":1,
"value":"Item Group 1",
"order":1
},
{
"id":4,
"value":"Item Group 2",
"order":2
},
{
"id":12,
"value":"Item Group 3",
"order":4
}
];
Массив 2: элементы, которые в группах:
var itemChildren = [
{
"id":68,
"value":"An example item from Group 1",
"parent_id":1
},
{
"id":69,
"value":"An example item from Group 2",
"parent_id":4
}
{
"id":76,
"value":"An example item from Group 3",
"parent_id":12
}
];
Нужный выход:
var itemGroupsWithChildren = [
{
"id":1,
"value":"Item Group 1",
"order":1,
"children":[
{
"id":68,
"value":"An example item from Group 1",
}
]
},
{
"id":4,
"value":"Item Group 2",
"order":2,
"children":[
{
"id":69,
"value":"An example item from Group 2"
}
]
},
{
"id":12,
"value":"Item Group 3",
"order":4,
"children":[
{
"id":76,
"value":"An example item from Group 3"
}
]
}
];
Любая помощь была бы принята с благодарностью. Благодарю.
EDITED:
var dataServiceGroups = [
{"id":65,"value":"Group 1","order":1,"picklist_id":12},
{"id":118,"value":"Group 2","order":2,"picklist_id":12},
{"id":120,"value":"Group 2","order":4,"picklist_id":12},
{"id":222,"value":"Group 3","order":3,"picklist_id":12},
{"id":223,"value":"Group 4","order":5,"picklist_id":12},
{"id":224,"value":"Group 5","order":6,"picklist_id":12},
{"id":225,"value":"Group 6","order":7,"picklist_id":12},
{"id":226,"value":"Group 7","order":8,"picklist_id":12},
{"id":227,"value":"Other Group","order":9,"picklist_id":12}
];
var dataServices = [
{"id":68,"value":"Item From Group 1","order":3,"picklist_id":13,"parent_id":65},
{"id":228,"value":"Other Service","order":4,"picklist_id":13,"parent_id":227}
];
Можно ли предположить, как Ричард делает ниже, что два входных массива упорядочены одинаково? –
Привет, Саймон, я не уверен, что вы имеете в виду, хотя реакция Ричарда, похоже, не работает над моими фактическими данными. Я обновил вопрос с данными ближе к тому, что я использую в своем приложении, поскольку я явно что-то пропустил. – Aymur
После дальнейших исследований порядок важен. По сути, дети должны быть сопоставлены с помощью ключа «parent_id». – Aymur