I have two arrays like
var array1 = [{group_name: "Gp HQ, Hyderabad", group_id: "1"},
{group_name: "Gp HQ, Secunderabad", group_id: "2"},
{group_name: "Group HQ, Guntur", group_id: "3"}];
var array2 = [
{unit_total: 1, branch_name: "1 (T) Air Sqn", branch_group_id: "1", branch_id: "6"},
{unit_total: 1, branch_name: "1 (T) Arty Bty", branch_group_id: "1", branch_id: "5"},
{unit_total: 3, branch_name: "1 (T) Bn", branch_group_id: "1", branch_id: "1"},
{unit_total: 1, branch_name: "1 (T) R&V Regt", branch_group_id: "1", branch_id: "4"},
{unit_total: 3, branch_name: "3 (T) Bn", branch_group_id: "1", branch_id: "2"}];
Here array2 is multilevel array, next value will contain group_id 2 as follows
I want to push array2 value to array1 with key name like below
var result_array = [{group_id:1, group_name:test_group, child_array:[
{unit_total: 1, branch_name: "1 (T) Air Sqn", branch_group_id: "1", branch_id: "6"},
{unit_total: 1, branch_name: "1 (T) Arty Bty", branch_group_id: "1", branch_id: "5"},
{unit_total: 3, branch_name: "1 (T) Bn", branch_group_id: "1", branch_id: "1"},
{unit_total: 1, branch_name: "1 (T) R&V Regt", branch_group_id: "1", branch_id: "4"},
{unit_total: 3, branch_name: "3 (T) Bn", branch_group_id: "1", branch_id: "2"}},
{group_id:2, group_name:test_group, child_array:[
{unit_total: 1, branch_name: "1 (T) Air Sqn", branch_group_id: "2", branch_id: "6"},
{unit_total: 1, branch_name: "1 (T) Arty Bty", branch_group_id: "2", branch_id: "5"},
{unit_total: 3, branch_name: "1 (T) Bn", branch_group_id: "2", branch_id: "1"},
{unit_total: 1, branch_name: "1 (T) R&V Regt", branch_group_id: "2", branch_id: "4"},
{unit_total: 3, branch_name: "3 (T) Bn", branch_group_id: "2", branch_id: "2"}}
]];
How can i achieve this. I have tried using array_push and concat methods also but no luck. Please let me know how to do this. Thanks in advance
You can loop through array1 and use array.filter to populate child_array:
var array1 = [ { group_id: "1", group_name: 'test_group1' }, { group_id: "2", group_name: 'test_group1' } ]; var array2 = [ {unit_total: 1, branch_name: "1 (T) Air Sqn", branch_group_id: "1", branch_id: "6"}, {unit_total: 1, branch_name: "1 (T) Arty Bty", branch_group_id: "1", branch_id: "5"}, {unit_total: 3, branch_name: "1 (T) Bn", branch_group_id: "2", branch_id: "1"}, {unit_total: 1, branch_name: "1 (T) R&V Regt", branch_group_id: "1", branch_id: "4"}, {unit_total: 3, branch_name: "3 (T) Bn", branch_group_id: "2", branch_id: "2"}]; array1.forEach(group => group.child_array = array2.filter(e => e.branch_group_id === group.group_id)); console.log(array1);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.