Задать вопрос
@nutritsio

Как в массив объектов, в каждый объект добавить еще одно значение?

Есть массив объекта:
[
  {
    "id": "1",
    "title": "Дом1"
  },
  {
    "id": "2",
    "title": "Зал2"
  },
  {
    "id": "3",
    "title": "Дом3"
  },
  {
    "id": "4",
    "title": "Зал4"
  }
]


Нужен массив объекта:

[
  {
    "id": "1",
    "title": "Дом1",
    "active": "true"
  },
  {
    "id": "2",
    "title": "Зал2",
    "active": "false"
  },
  {
    "id": "3",
    "title": "Дом3",
    "active": "false"
  },
  {
    "id": "4",
    "title": "Зал4",
    "active": "false"
  }
]


При попытке на typescript, Angular 4, выдает данную ошибку:

59f23a4c96991861638749.png

Ошибка:
ERROR TypeError: Cannot set property 'active' of undefined
59f23b01b8d46971291937.png
  • Вопрос задан
  • 251 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
@nutritsio Автор вопроса
Проблема была в том, что я использовал Redux, и при инициализации компонента OnInit, вьюха не видела еще данный массив. Потому нужно было в редюсере описать данную логику и передать уже на компонент через Action.
Всем спасибо, думал что я елементарное что-то неправильно написал, оказалось мой косяк при использовании Redux.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
r0n1x
@r0n1x
html, css, js
map
forEach?

var a = [{
      "id": "1",
      "title": "Дом1"
    }, {
      "id": "2",
      "title": "Зал2"
    }, {
      "id": "3",
      "title": "Дом3"
    }, {
      "id": "4",
      "title": "Зал4"
    }];
    for (let i of a) {
      i.active = false;
    }
    console.log(a);
Ответ написан
mrspd
@mrspd
arr.forEach((obj) => obj['active'] = false);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы