Angularjs 要将某个键值对推送到嵌套对象吗
对象:1Angularjs 要将某个键值对推送到嵌套对象吗,angularjs,arrays,Angularjs,Arrays,对象:1 { "sourcePath": "vv", "targetPath": "bb" } 我得到了一个键值对,比如对象1,我已经有了一个嵌套对象,比如对象2 对象:2 { "user": "hdpsrvc", "update": "13/06/2016 17:43:22", "template": "template_1", "formBody": [ { "tabIndex": 0, "type": "text",
{
"sourcePath": "vv",
"targetPath": "bb"
}
我得到了一个键值对,比如对象1,我已经有了一个嵌套对象,比如对象2
对象:2
{
"user": "hdpsrvc",
"update": "13/06/2016 17:43:22",
"template": "template_1",
"formBody": [
{
"tabIndex": 0,
"type": "text",
"name": "sourcePath",
"label": "Source path"
},
{
"tabIndex": 1,
"type": "text",
"name": "targetPath",
"label": "Target path"
}
],
}
我想将对象1的键值对推入一个嵌套对象,如下所示(请参见formBody
下的红色标记粗体键值对)
如果您只有这两个值要推送,那么只需按如下分配即可轻松完成 假设JSON 1存储在varible
var jsonOne
中,JSON 2存储在variblevar jsonTwo
中。然后
jsonTwo.formBody[0].sourcePath = jsonOne.sourcePath;
jsonTwo.formBody[1].targetPath = jsonOne.targetPath;
或者,如果要推送更多的值,则可以编写for循环并形成匹配的算法。在下面的代码中,我与标签匹配
for (i = 0; i < jsonTwo.formBody.length; i++) {
var temp = jsonTwo.formBody[i].label;
if (temp === 'Source path') {
jsonTwo.formBody[i].sourcePath = jsonOne.sourcePath;
} else {
jsonTwo.formBody[i].targetPath = jsonOne.targetPath;
}
}
for(i=0;i
您可以尝试以下方法:
var obj1={
“源路径”:“vv”,
“targetPath”:“bb”
};
变量obj2={
“用户”:“hdpsrvc”,
“更新”:“13/06/2016 17:43:22”,
“模板”:“模板1”,
“格式体”:[
{
“tabIndex”:0,
“类型”:“文本”,
“名称”:“源路径”,
“标签”:“源路径”
},
{
“tabIndex”:1,
“类型”:“文本”,
“名称”:“targetPath”,
“标签”:“目标路径”
}
]};
obj2.formBody=obj2.formBody.map((项,ind)=>Object.assign(
项目
{[Object.keys(obj1)[ind]]:obj1[Object.keys(obj1)[ind]]
));
console.log(obj2)代码>这似乎与JSON无关,而是与JavaScript对象相关。请阅读json
标记的使用说明。
for (i = 0; i < jsonTwo.formBody.length; i++) {
var temp = jsonTwo.formBody[i].label;
if (temp === 'Source path') {
jsonTwo.formBody[i].sourcePath = jsonOne.sourcePath;
} else {
jsonTwo.formBody[i].targetPath = jsonOne.targetPath;
}
}