Angular 2 добавляет ключ и значение к каждому объекту массива - PullRequest
0 голосов
/ 30 октября 2018

У меня есть массив объектов:

array = [
  {name: 'name'},
  {name: 'name'},
  {name: 'name'},
  {name: 'name'},
]

Я хочу добавить ключ: '123' к каждому из них, чтобы это было:

array = [
  {name: 'name', key: '123'},
  {name: 'name', key: '123'},
  {name: 'name', key: '123'},
  {name: 'name', key: '123'},
]

Что я пробовал:

checked = false;
     this.editObj.forEach(item => item.push(this.checked))

ОШИБКА: item.push не является функцией.

Но это не работает. Как это сделать правильно?

Ответы [ 5 ]

0 голосов
/ 30 октября 2018

Во всем, кроме IE11

Создание нового массива

const array = [{
    name: 'name',
  },
  {
    name: 'name',
  },
  {
    name: 'name',
  },
  {
    name: 'name',
  },
];

console.log(array.map(x => ({
  ...x,

  key: '123',
})));

Обновление существующего массива

const array = [{
    name: 'name',
  },
  {
    name: 'name',
  },
  {
    name: 'name',
  },
  {
    name: 'name',
  },
];

array.forEach((x) => {
  x.key = '123';
});

console.log(array);

В IE11

var array = [{
    name: 'name',
  },
  {
    name: 'name',
  },
  {
    name: 'name',
  },
  {
    name: 'name',
  },
];

for (var i = 0; i < array.length; i += 1) {
  array[i].key = '123';
}

console.log(array);
0 голосов
/ 30 октября 2018

Вы можете попробовать создать собственный словарь

array = [
{name: 'name'},
{name: 'name'},
{name: 'name'},
{name: 'name'},
]

var dict = []; // create an empty dictionary
for (i = 0; i < array.length; i++) { 

  dict.push({
    key:   "123",
    value: array[i].name
  });
  

}
  console.log(dict);
0 голосов
/ 30 октября 2018
const arr = [
  {name: 'name'},
  {name: 'name'},
  {name: 'name'},
  {name: 'name'},
]

const arr2 = arr.map(x => ({...x , key: '123'}));
0 голосов
/ 30 октября 2018

Ваш код не работает, потому что вы используете .push() для объекта, а не для массива. Попробуйте это:

this.editObj.forEach(item => item["key"] = this.checked);
0 голосов
/ 30 октября 2018

вы должны сделать:

this.editObj.forEach(item => item["key"]= "123");
console.log(this.editObj);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...