首页 > 解决方案 > 使用 forEach 将对象推入数组

问题描述

我有一个点击事件,它改变了我想组合成一个类似 json 的对象的三个元素的值:

function generateNumbers() {
  let a = Math.random()
  let b = Math.random()
  let c = Math.random()
  console.log({
    "numbers": [
      {"a": a, "b": b, "c": c}
    ]
  })
}
<button onclick="generateNumbers()">Three Numbers</button>

而不是 replace a, b,c我想在{"a": a, "b": b, "c": c}每次点击时添加另一个对象。这可能吗?

期望的输出

{
  "numbers": [
    {
      "a": 0.795741457922079,
      "b": 0.07941685760724382,
      "c": 0.048012832026655516
    },
    {
      "a": 0.17600389141580575,
      "b": 0.4720288949307833,
      "c": 0.8079844242898715
    },
  ]
}

标签: javascriptobjectforeach

解决方案


您需要创建一个初始对象,其中包含numbers作为数组的属性,您可以在其中推送新生成的对象ab以及c属性。阅读.push()

push()方法将一个或多个元素添加到数组的末尾并返回数组的新长度。

尝试如下:

const data = {
   numbers: []
};

function generateNumbers() {
  let a = Math.random()
  let b = Math.random()
  let c = Math.random()
  
  data.numbers.push({"a": a, "b": b, "c": c});
  
  console.log(data);
}
<button onclick="generateNumbers()">Three Numbers</button>

我希望这有帮助!


推荐阅读