【问题标题】:Pushing objects into array using forEach使用 forEach 将对象推入数组
【发布时间】:2020-04-17 14:21:22
【问题描述】:

我有一个点击事件,它改变了我想组合成一个类 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>

而不是替换 abc,我想在每次点击时添加另一个对象 {"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
    },
  ]
}

【问题讨论】:

    标签: javascript object foreach


    【解决方案1】:

    您需要创建一个初始对象,其中包含numbers 属性作为数组,您可以在其中使用abc 属性推送新生成的对象。阅读.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>

    我希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      您需要为generateNumbers 函数之外的数字添加一个变量。

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

      【讨论】:

        【解决方案3】:

        您需要在函数之外定义对象并将numbers 中设置的新值推送到generateNumbers

        const data = { numbers: [] }
        
        function generateNumbers(){
          const val = Math.random;
          data.numbers.push({ a: val(), b: val(), c: val() )})
        }
        
        

        【讨论】:

          猜你喜欢
          • 2014-10-12
          • 1970-01-01
          • 2017-12-05
          • 1970-01-01
          • 2023-03-14
          • 1970-01-01
          • 2016-05-09
          • 2021-02-09
          相关资源
          最近更新 更多