2017-10-12 41 views
3

我有兩個JSON一個是父母,另一個是孩子,我想合併兩個。請幫忙。看下面的例子如何獲得與父子關係的JSON結果?(見詳細信息)

兩個表如下。

var parent = [{id : 1, name : 'India'}, 
      {id : 2, name : 'USA'}, 
      {id : 3, name : 'Japan'}, 
      {id : 4, name : 'UK'}] 

var child = [{id: 1, parentId: 1, city : 'Ahmedabad', population:100}, 
      {id: 2, parentId: 1, city : 'Mumbai', population:200}, 
      {id: 3, parentId: 2, city : 'NewYork', population:300}, 
      {id: 4, parentId: 2, city : 'Chicago', population:400}, 
      {id: 5, parentId: 3, city : 'Tokyo', population:500}] 

我想導致像下面

var result = 
[{id : 1, name : 'India', city:[{name : 'Ahmedabad', population:100},{name : 'Mumbai', population:200}]}, 
{id : 2, name : 'USA', city:[{name : 'NewYork', population:300},{name : 'Chicago', population:400}]}, 
{id : 3, name : 'Japan', city:[{name : 'Tokyo', population:500}]}, 
{id : 4, name : 'UK', city:[]} 
] 
+0

你的嘗試在哪裏? – CBroe

+0

我有兩個表一父母和另一個孩子。我想要描述兩個數據的json。通過選擇查詢,我獲取了父表數據和子數據。使用循環,我們可以將子數據添加到父項中,但我面臨問題。我需要簡單而簡單的邏輯來實現它。這些是虛擬數據。 – MohammedAshrafali

+0

我沒有要求你重複你想要的描述,而是向我們展示你的嘗試。 _「帶循環,我們可以將孩子數據添加到家長,但我面臨問題」_ - **顯示我們**,而不是告訴我們一個故事... – CBroe

回答

2
var result =JSON.parse(JSON.stringify(parent)); 

result.map(function (d, i) { 
    d.city = (child.filter(function (d1) { 
    if (d1.parentId == d.id) { 
     return d1; 
    } 
    })).map(function(d2){ 
    return {city:d2.city,population:d2.population} 
    }); 
}) 

現在結果變量包含您預期的結果。

相關問題