Javascript 如何根据Id在对象中插入密钥
我有一个对象数组,当Id匹配时,我想在数组的specifi对象中添加键。我试过这个:Javascript 如何根据Id在对象中插入密钥,javascript,angular,typescript,Javascript,Angular,Typescript,我有一个对象数组,当Id匹配时,我想在数组的specifi对象中添加键。我试过这个: this.data.forEach(value => { if (value.Id === attachmentDataId) { AttachmentTypeId: this.attachmentRecord.AttachmentType; } }); 但它不起作用,也没有出现任何错误。请尝
this.data.forEach(value => {
if (value.Id === attachmentDataId) {
AttachmentTypeId: this.attachmentRecord.AttachmentType;
}
});
但它不起作用,也没有出现任何错误。请尝试以下操作:
let data = [{ id: 1 }, { id: 5 }];
const attachmentDataId = 5;
const attachmentRecord = { AttachmentType: "AttachmentType" };
data.forEach(value => {
if (value.id === attachmentDataId) {
value.AttachmentTypeId = attachmentRecord.AttachmentType;
}
});
stackblitz示例:您可以使用
forEach
函数的index
参数访问数组的特定对象
this.data.forEach((值,i)=>{
if(value.Id==attachmentDataId){
此.data[i]={
…此.数据[i],
AttachmentTypeId:this.attachmentRecord.AttachmentType
};
}
});
在if
块中,也可以执行以下操作
this.data[i]['AttachmentTypeId']=this.attachmentRecord.AttachmentType;
我只是找到了使用spread操作符清理器的方法。使用javascript map()方法。
Map()返回一个新数组,它接受回调,迭代该数组中的每个元素
const updatedData = data.map(res => {
if(res.id === attachmentDataId) {
res.AttachmentTypeId = attachmentRecord.AttachmentType;
}
return res
})
尝试将if块的主体更改为
value.AttachmentTypeId=this.attachmentRecord.AttachmentType代码>能否提供更多详细信息/上下文?尝试创建一个什么是此。数据
?attachmentDataId
的值是多少?