2017-07-19 37 views
-1

我有對象的數組:值添加到嵌入對象

var data = [ 
    { "name": " Step A ","values": [{"id": "b0", "from": "/Date(1320182000000)/", "to": "/Date(1325573274000)/", "desc": "Id: 0", "label": " Step A1", "customClass": "ganttRed", "dep": "b1"}]}, 
    { "name": " Step B ","values": [{"id": "b1", "from": "/Date(11/07/2011 )/", "to": "/Date(11/11/2011 )/", "desc": "Id: 1", "label": " Step B1", "customClass": "ganttOrange", "dep": "b2"}]}, 
    { "name": " Step C ","values": [{"id": "b2", "from": "/Date(1321192000000)/", "to": "/Date(1321500400000)/", "desc": "Id: 2", "label": " Step C1", "customClass": "ganttGreen", "dep": "b3"}]}, 
    { "name": " Step J ","values": [{"id": "b9", "from": "/Date(1320802400000)/", "to": "/Date(1321994800000)/", "desc": "Id: 9", "label": " Step J1", "customClass": "ganttOrange"}]} 
    ]; 

我需要其他項目添加到元素「值」。結果的一個例子應該是這樣的:

{ "name": " Step A ","values": [{"id": "b0", "from": "/Date(1320182000000)/", "to": "/Date(1325573274000)/", "desc": "Id: 0", "label": " Step A1", "customClass": "ganttRed", "dep": "b1"}, {"id": "b9", "from": "/Date(1320802400000)/", "to": "/Date(1321994800000)/", "desc": "Id: 9", "label": " Step J1", "customClass": "ganttOrange"}]}, 

我試過使用它,但它不工作。

data[values].push({"from": "artDate", "to": "EndDate", "id": "ganttOrange"}); 

請幫忙。

+0

有一個索引丟失。我想你想在另一個對象的values屬性中添加一個對象嗎? –

+0

當我用「」像data [「values」]包含值時,仍然沒有工作。push – noname

+0

@Béranger是的我需要在「value」內添加一個對象項目值,但不是來自其他對象的具體值。 – noname

回答

0

關於什麼:

data[index].values.push({"from": "artDate", "to": "EndDate", "id": "ganttOrange"}); 
+0

謝謝Béranger。很好的幫助! :) – noname

+0

另一個問題,如果你可以,Béranger。如何將值添加到變量數據中的最後一項?例如,在下面,我想推這些值到數據中的最後一個項目。我會怎麼做? data [index] .values.push({「from」:「artDate」,「to」:「EndDate」,「id」:「ganttOrange」}); – noname

+0

'data [data.length-1] .values.push(...)' –

1

你有兩個問題。首先,您需要將values換成引號,以便將其視爲字符串文字。如果沒有引號,JS會假定你的意思是一個名爲values的變量,它不存在並會導致錯誤。或者,您可以使用點符號,即object.propertyname.push()

其次,你需要通過一個索引來訪問data數組,以知道哪個對象包含values數組到push()。推到陣列中的第一個對象,使用data[0],像這樣:

var data = [{ 
 
    "name": " Step A ", 
 
    "values": [{ 
 
     "id": "b0", 
 
     "from": "/Date(1320182000000)/", 
 
     "to": "/Date(1325573274000)/", 
 
     "desc": "Id: 0", 
 
     "label": " Step A1", 
 
     "customClass": "ganttRed", 
 
     "dep": "b1" 
 
    }] 
 
    }, 
 
    { 
 
    "name": " Step B ", 
 
    "values": [{ 
 
     "id": "b1", 
 
     "from": "/Date(11/07/2011 )/", 
 
     "to": "/Date(11/11/2011 )/", 
 
     "desc": "Id: 1", 
 
     "label": " Step B1", 
 
     "customClass": "ganttOrange", 
 
     "dep": "b2" 
 
    }] 
 
    } 
 
]; 
 

 
data[0].values.push({ 
 
    "from": "artDate", 
 
    "to": "EndDate", 
 
    "id": "ganttOrange" 
 
}); 
 

 
console.log(data);