Назначение объекта в Javascript - PullRequest
0 голосов
/ 16 октября 2019

Ошибка при попытке присвоить объекты в JavaScript

Image of output

let info = {
  ID: '',
}

let ids = ["0", "1", "2", "3", "4"]

ids.forEach((i) => {
  info.ID = i
  console.log(info)
});

Я ожидаю, что вывод этого кода будет информацией об объекте с ID от 1 до 4, но фактическим выводом будет info.ID = 4

Ответы [ 6 ]

1 голос
/ 16 октября 2019

Вам не нужен объект. Просто используйте карту в массиве:

let ids = ["0", "1", "2", "3", "4"]

let info = ids.map(i => ({ID: i}));

console.log(info);
0 голосов
/ 16 октября 2019

Вы просто переписываете ID снова и снова. Вы должны всегда выдвигать новое значение id.

function solve() {
      let info = [];

      let ids = ['0', '1', '2', '3', '4'];

      for (const id of ids) {
        info.push({ ID: id });
      }

      console.log(info);
    }

    solve();
0 голосов
/ 16 октября 2019

Вам может понадобиться массив объекта info.

let infos = []

let ids = ["0", "1", "2", "3", "4"]

ids.forEach((i) => {
  let info = {ID: i};
  infos.push(info);
});

infos.forEach((info) => console.log(info.ID));
0 голосов
/ 16 октября 2019

Вы можете попробовать это:

let info = []

let ids = ["0", "1", "2", "3", "4"]

ids.forEach((i) => {
  info.push({ID : i})
  console.log(info)
});
0 голосов
/ 16 октября 2019

let ids = ["0", "1", "2", "3", "4"]
let info = {
    ID: ids
}
console.log(info);

Примечание. Вам просто нужно присвоить имя локальной переменной элементу объекта.

0 голосов
/ 16 октября 2019

Конечно, вы перебираете массив и присваиваете идентификатор со значением каждого элемента в массиве.

Если вы хотите присвоить ID свойства массиву, просто используйте это:

let info = {
 ID : ["0", "1", "2", "3", "4"]
} 

console.log(info);

Неясно, чего вы пытаетесь достичь с помощью цикла forEach.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...