Javascript 如何将数据推送到嵌套对象

Javascript 如何将数据推送到嵌套对象,javascript,Javascript,如何从下面的对象将另一个元素推送到variables属性 var request = { "name": "Name", "id": 3, "rules":[ { "name": "Rule name", "tags": [ { "tagId": 1, "variables":[ { "variab

如何从下面的对象将另一个元素推送到
variables
属性

  var request = {
    "name": "Name",
    "id": 3,
    "rules":[
      {
        "name": "Rule name",
        "tags": [
          {
            "tagId": 1,
            "variables":[
              {
                "variable": "var1",
                "matchType": "Regex",
                "value": ".*"
              },
              {
                "variable": "var2",
                "matchType": "Regex",
                "value": ".*"
              }
            ],
            "condition": false,
          },
          {
            "tagId": 1,
            "condition": false,
          }
        ],
        "ruleSetId": 3,
      }
    ]
  }
例如,我需要将
{“variable”:“var3”,“matchType”:“Regex”,“value”:“*”}
添加到
变量的
属性中,从
请求
对象…我如何做到这一点

for(i=0;i<duplicates.length; i++) {
  var request = {
    "name": duplicates[i].scope,
    "id": 3,
    "rules":[
      {
        "name": duplicates[i].scope + " " + "OP SDR Sync",
        "tags": [
          {
            "tagId": 1,
            "variables":[
              {
              }
            ],
            "condition": false,
          },
          {
            "tagId": 1,
            "condition": false,
          }
        ],
        "ruleSetId": 3,
      }
    ]
  }

  request.rules[0].tags[0].variables[0].push({
    "variable":"var3",
    "matchType": "Regex",
    "value": ".*"
  });
}
对于(i=0;i请这样尝试:

object = {"variable": "var3", "matchType": "Regex", "value": ".*"};
request.rules[0].tags[0].variables.push(object);
试着这样做:

object = {"variable": "var3", "matchType": "Regex", "value": ".*"};
request.rules[0].tags[0].variables.push(object);
尝试:

变量
进入
标签
标签
进入
规则

我编辑了答案

试试:

变量
进入
标签
标签
进入
规则

我编辑了答案

您必须在对象中正确“导航”:

request.rules[0].tags[0].variables.push({
  "variable":"var3",
  "matchType": "Regex",
  "value": ".*"
})
request['variables']
将尝试在
request
对象的根中查找
variables
键。该键没有定义,但嵌套在对象/数组结构中。

您必须在对象中正确“导航”:

request.rules[0].tags[0].variables.push({
  "variable":"var3",
  "matchType": "Regex",
  "value": ".*"
})
request.rules[0].tags.variables[0].push({
  "variable":"var3",
  "matchType": "Regex",
  "value": ".*"
});
request['variables']
只会尝试在
request
对象的根中查找
variables
键。该键没有定义,但嵌套在对象/数组结构中

request.rules[0].tags.variables[0].push({
  "variable":"var3",
  "matchType": "Regex",
  "value": ".*"
});
您必须在阵列中导航。 替换[]中的0以从数组中选择项。(0是第一个条目,1是第二个条目等)

您必须在阵列中导航。 替换[]中的0以从数组中选择项。(0是第一个条目,1是第二个条目等)。

点运算符(.)可用于获取特定对象属性的值

方括号([])可用于访问数组的元素

现在回答你的问题:

request.rules[0].tags[0].variables.push({
"variable": "var3", 
"matchType": "Regex", 
"value": ".*"
});
此处,
[0]
指定数组的第一个元素。

点运算符(.)可用于获取特定对象属性的值

方括号([])可用于访问数组的元素

现在回答你的问题:

request.rules[0].tags[0].variables.push({
"variable": "var3", 
"matchType": "Regex", 
"value": ".*"
});

在这里,
[0]
指定数组的第一个元素。

请检查我的更新问题,我得到
错误:无法从未定义中读取属性“0”。
…我的代码有什么问题吗?@PavelValeriu是。
标记
是一个数组,因此你必须使用
请求.规则[0]。标记[0].variables
。另外请注意,
variables
是您要推送到的数组,因此不要在那里使用
[0]
。现在它抛出了我
错误:找不到函数推入对象[object object]。
@PavelValeriu只需复制并粘贴我的答案,就可以了。您尝试了
variables[0]
而不是
变量
。还有一个问题……请告诉我,如果我将这些值推送到一个空
变量
对象,为什么总是得到一个空元素?我为此添加了一个新问题……请检查我更新的问题,我得到
错误:无法读取属性“0”来自未定义。
…我的代码有什么问题吗?@PavelValeriu有。
标记
是一个数组,因此您必须使用
请求.规则[0].标记[0].变量
。另外请注意,
变量
是您要推送到的数组,所以不要使用
[0]
在那里。现在它向我抛出
错误:找不到函数推入对象[object object]。
@PavelValeriu只需复制并粘贴我的答案,就可以了。您尝试了
变量[0]
而不是
变量
。还有一个问题…你能告诉我,如果我将这些值推送到一个空
变量
对象,为什么总是得到一个空元素吗?我为此添加了一个新问题。。。