想要在嵌套对象内添加对象数组:Javascript

时间:2019-07-18 11:23:49

标签: javascript arrays ecmascript-6

我需要将一个对象数组添加到另一个结构如下所示的对象中。

此处arr是需要添加到“目标”对象的对象数组。

我们将不胜感激

结构:


    var arr = [
               { field: "state", value: "value2"},
               { field: "city", value: "value3"}
              ];

此对象数组需要添加到以下结构的对象中:


var dest = {
  "topic": "test",
  "filter":  {
             "sequence": [
                       {
                         "field": "country",
                         "value": "value1",
                       }
                     ]
             },
  "order":  [
                  {
                      "field": "field1",
                       "order": "backward"
                  }
            ]
}


我想在“序列”中添加“ arr”字段,以便结果如下:


var dest = {
  "topic": "test",
  "filter":  {
             "sequence": [
                       {
                         "field": "country",
                         "value": "value1",
                       },
                        {
                         "field": "state",
                         "value": "value2",
                       },
                        {
                         "field": "city",
                         "value": "value3",
                       }
                     ]
             },
  "order":  [
                  {
                      "field": "field1",
                       "order": "backward"
                  }
            ]
}


2 个答案:

答案 0 :(得分:1)

使用forEach()即可完成。

var arr = [
        { field: "state", value: "value2"},
        { field: "city", value: "value3"}
    ];

    var dest = {
        "topic": "test",
        "filter":  {
            "sequence": [
                {
                    "field": "country",
                    "value": "value1",
                }
            ]
        },
        "order":  [
            {
                "field": "field1",
                "order": "backward"
            }
        ]
    }

    arr.forEach(function (item) {
        dest.filter.sequence.push(item)
    });

    console.log(dest)

还可以使用ES6 spread运算符

var arr = [
        { field: "state", value: "value2"},
        { field: "city", value: "value3"}
    ];

    var dest = {
        "topic": "test",
        "filter":  {
            "sequence": [
                {
                    "field": "country",
                    "value": "value1",
                }
            ]
        },
        "order":  [
            {
                "field": "field1",
                "order": "backward"
            }
        ]
    }
    
    dest.filter.sequence.push(...arr)

    console.log(dest)

答案 1 :(得分:0)

您只需要使用以下代码即可将数组插入对象。

        arr.forEach( function(value, index, array) {
            dest.filter.sequence.push(value);
        });