Angular 2向每个数组对象添加键和值

时间:2018-10-30 09:41:56

标签: javascript arrays angular typescript javascript-objects

我有对象数组:

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不是函数。

但是它不起作用。如何以正确的方式做到这一点?

4 个答案:

答案 0 :(得分:2)

您应该这样做:

this.editObj.forEach(item => item["key"]= "123");
console.log(this.editObj);

答案 1 :(得分:2)

const arr = [
  {name: 'name'},
  {name: 'name'},
  {name: 'name'},
  {name: 'name'},
]

const arr2 = arr.map(x => ({...x , key: '123'}));

答案 2 :(得分:1)

您的代码无法正常工作,因为您在对象而非数组上使用了.push()。 试试这个:

this.editObj.forEach(item => item["key"] = this.checked);

答案 3 :(得分:1)

您可以尝试创建自定义词典

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);