【问题标题】:How to merge all objects into one object javascript如何将所有对象合并为一个对象javascript
【发布时间】:2020-01-17 15:51:19
【问题描述】:

我正在尝试在数组中推送多个值,例如

arr.push({y: val.date})
for(var n = 0; n < 4; n++) {
    arr.push({'"+val+n+"': data["+n+"]});
}

结果如下:

[
  {
    "y": "2019-09-08 16:41:04"
  },
  {
    "D0": "31.70"
  },
  {
    "D1": "31.70"
  },
  {
    "D2": "31.70"
  },
  {
    "D3": "31.80"
  }
]

但我希望数组看起来像这样:

{
  "y": "2019-09-08 16:41:04",
  "D0": "31.70",
  "D2": "31.70",
  "D3": "31.70",
  "D4": "31.80"
}

我尝试合并和连接,但它不起作用。有什么办法,因为我的键和值是用 json 数据动态生成的。

以下代码来自其他来源,这就是我必须这样做的原因

arr.push({y: val.date})

【问题讨论】:

  • 对,所以,如果你想要一个对象,你需要使用一个对象而不是一个数组。
  • 了解对象和数组之间的区别。您将这两个概念混合在一起

标签: javascript jquery arrays json merge


【解决方案1】:

谢谢,但我在发布此问题后立即找到了答案。谢谢

var element = {}, cart = [];
element.id = id;
element.quantity = quantity;
cart.push({element: element});

【讨论】:

    【解决方案2】:

    这能解决你的问题吗:

    // ES2018
    let obj = {}
    for (let i = 0; i < 10; i++) {
      obj = { ...obj, ...{[`val${i}`]: i} }
    }
    
    //ES5
    var obj = {}
    for (var i = 0; i < 10; i++) {
      obj = Object.assign( obj, { [`val${i}`]: i })
    }
    

    【讨论】:

    • 好吧,我看到了反对票。我的回答一点帮助都没有吗?也许我可以改写或详细说明一下。我的答案更详细地介绍了合并对象。不过我很高兴看到你想通了:)
    猜你喜欢
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    相关资源
    最近更新 更多