Вставка объектов в массив с помощью forEach - PullRequest
1 голос
/ 17 апреля 2020

У меня есть событие по щелчку, которое изменяет значения трех элементов, которые я хочу объединить в 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>

Вместо замены 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
    },
  ]
}

Ответы [ 3 ]

1 голос
/ 17 апреля 2020

Вам необходимо создать начальный объект, который содержит свойство numbers в виде массива, в котором вы можете получить sh вновь созданный объект со свойствами a, b и 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>

Надеюсь, это поможет!

0 голосов
/ 17 апреля 2020

вам нужно определить свой объект вне функции и pu sh новое значение, установленное в numbers через generateNumbers

const data = { numbers: [] }

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

0 голосов
/ 17 апреля 2020

Вам необходимо добавить переменную для чисел вне функции 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...