向嵌入对象添加值

时间:2017-07-19 15:17:49

标签: jquery

我有一个对象数组:

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"}]}
    ];

我需要在元素“values”中添加其他项。结果的一个例子应该是这样的:

{ "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"});

请帮忙。

2 个答案:

答案 0 :(得分: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);




答案 1 :(得分:0)

怎么样:

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