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]
而不是变量
。还有一个问题…你能告诉我,如果我将这些值推送到一个空变量
对象,为什么总是得到一个空元素吗?我为此添加了一个新问题。。。