Gori4ka
@Gori4ka
WordPress Developer

Как так получается что в итоге все обьекты в массиве имеют максимальное значение?

Есть следующая задача нужно создать массив обьектов и в и в каждом обьекте нужно менять одно значение ключа.
Ну вот пример кода которым старался сделать.
var pages = [];
  var item = {name:'test'};
 [1,2,3,4,5].forEach(function(i) {
  item.page = i;
  pages.push(item);
});
console.log(pages);

https://jsfiddle.net/Gori4ka/1s5kdqzw/5/
Но проблема в том что значение `page` во всех значениях равна 5 тоесть максимальное значение ключа. Как быть? Пожалуйста помогите
  • Вопрос задан
  • 79 просмотров
Решения вопроса 2
@qq1
Потому что в массив помещается один и тот же объект, а нужно разные:
pages.push({name: 'test', page: i});
Ответ написан
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
Проблема в том, что item у вас ссылка на один и тот же объект.
В вашем случае можно так:
var pages = [1,2,3,4,5].map((i) => ({ name:'test', page: i }))
console.log(pages);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы