javascript - 如何通过 id 在对象数组中添加新值(不是新项目)
问题描述
我正在尝试value
通过 id 在我的数组中添加一个新的。我没有尝试在我的数组中添加新项目...为此我可以使用push()
,但它添加新项目而不是新值。
我正在尝试这样做:
我的数组:
const data =
[
{
"id": 1,
"year":2019,
"value": 2,
},
{
"id": 2,
"year": 2019,
"value": 89,
},
{
"id": 3,
"year": 2019,
"value": 99,
}
]
在一个特定的内部,id
我会添加一个新值,如下所示:
data.forEach(item => {
if(item.id === 2){
//data inside id 2 -> item: 55
}
})
所以我的新data
数组如下所示:
const data =
[
{
"id": 1,
"year":2019,
"value": 2,
},
{
"id": 2,
"year": 2019,
"value": 89,
"item": 55
},
{
"id": 3,
"year": 2019,
"value": 99,
}
]
在我的大部分搜索中,我发现了如何添加新元素。但这我知道该怎么做(push()
)。
那么如何在指定的内部添加一个新值id
呢?
解决方案
只需分配您要添加的属性:
data.forEach(item => {
if(item.id === 2){
item.item = 55;
}
})
如果 ID 是唯一的,您可以使用以下.find()
方法:
var el = data.find(item => item.id === 2);
if (el) {
el.item = 55;
}
推荐阅读
- graphql - AWS AppSync 缓存 - 使用标头参数作为键来配置缓存调用 graphql 查询
- java - 如何在 testng 中不使用监听器的情况下重新运行套件
- python - 我怎样才能在python中回答一个洗牌的问题
- stata - 如何获得stata中每条交互线的系数?
- mongodb - $regexMatch 替代 MongoDB < 4.2
- jasperserver - Jasperserver 报告未显示 JSON 数据适配器
- django - 将包含所有数据的 POST 请求重定向到 url
- visual-studio-code - 如何驯服 Visual Studio Code 侧边栏?
- javascript - NodeJs 使用自定义属性而不是 _id 填充 Mongoose 数据
- systemd - Systemd 抛出无法理解的权限被拒绝