简体   繁体   English

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

[英]Angular 2 add key and value to each array object

I have array of objects : 我有一些对象:

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

I want to add key: '123' to each of them so it would be : 我想为每个人添加密钥:'123',这样就可以了:

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

What I've tryed : 我尝试过的:

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

ERROR : item.push is not a function. 错误:item.push不是函数。

But it isn't working. 但它没有用。 How to do it in the right way ? 如何以正确的方式做到这一点?

you should do : 你应该做 :

this.editObj.forEach(item => item["key"]= "123");
console.log(this.editObj);
const arr = [
  {name: 'name'},
  {name: 'name'},
  {name: 'name'},
  {name: 'name'},
]

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

Your code is not working because you use .push() on object, not on array. 您的代码无效,因为您在对象上使用.push() ,而不是在数组上。 Try this: 尝试这个:

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

You can try with creating custom dictionary 您可以尝试创建自定义词典

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

In everything except IE11 除了IE11以外的一切

Creating a new array 创建一个新数组

 const array = [{ name: 'name', }, { name: 'name', }, { name: 'name', }, { name: 'name', }, ]; console.log(array.map(x => ({ ...x, key: '123', }))); 

Updating existing array 更新现有阵列

 const array = [{ name: 'name', }, { name: 'name', }, { name: 'name', }, { name: 'name', }, ]; array.forEach((x) => { x.key = '123'; }); console.log(array); 


In IE11 在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); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM