Angularjs 要将某个键值对推送到嵌套对象吗

Angularjs 要将某个键值对推送到嵌套对象吗,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",

对象: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",
        "name": "sourcePath",
        "label": "Source path"
    },
    {
        "tabIndex": 1,
        "type": "text",
        "name": "targetPath",
        "label": "Target path"
    }
],
}

我想将对象1的键值对推入一个嵌套对象,如下所示(请参见
formBody
下的红色标记粗体键值对)


如果您只有这两个值要推送,那么只需按如下分配即可轻松完成

假设JSON 1存储在varible
var jsonOne
中,JSON 2存储在varible
var 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;
    }
}