如何通过 id 在对象数组内添加新值(不是新项目)

Zkk*_*Zkk 3 javascript arrays object

我正在尝试value按 id 在数组中添加一个新的。我没有尝试在数组中添加新项目...为此我可以使用push(),但它添加新项目而不是新值。

我正在尝试这样做:

我的阵列:

const data = 
[  
   {  
      "id": 1,
      "year":2019,
      "value": 2,
   },
   {  
      "id": 2,
      "year": 2019,
      "value": 89,
   },   
   {  
      "id": 3,
      "year": 2019,
      "value": 99,
   }   
]
Run Code Online (Sandbox Code Playgroud)

在特定的内部id我会添加一个新值,如下所示:

data.forEach(item => {
  if(item.id === 2){
    //data inside id 2 -> item: 55
  }
})
Run Code Online (Sandbox Code Playgroud)

所以我的新data数组如下所示:

const data = 
[  
   {  
      "id": 1,
      "year":2019,
      "value": 2,
   },
   {  
      "id": 2,
      "year": 2019,
      "value": 89,
      "item": 55
   },   
   {  
      "id": 3,
      "year": 2019,
      "value": 99,
   }   
]
Run Code Online (Sandbox Code Playgroud)

在我的大多数搜索中,我找到了如何添加新元素。但这我知道该怎么做(push())。

那么如何在指定的内部添加新值id呢?

Bar*_*mar 5

只需分配您要添加的属性:

data.forEach(item => {
  if(item.id === 2){
    item.item = 55;
  }
})
Run Code Online (Sandbox Code Playgroud)

如果ID是唯一的,可以使用以下.find()方法:

var el = data.find(item => item.id === 2);
if (el) {
  el.item = 55;
}
Run Code Online (Sandbox Code Playgroud)