要在Angular 9中更新对象数组中的对象,可以使用以下解决方案:
// 原始对象数组
let objArray = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 3, name: 'Doe' }
];
// 更新对象的函数
function updateObjectInArray(array, object) {
return array.map(item => {
if (item.id === object.id) {
return { ...item, ...object }; // 复制原始对象并更新属性
}
return item;
});
}
// 更新对象
let updatedObject = { id: 2, name: 'Janet' };
objArray = updateObjectInArray(objArray, updatedObject);
console.log(objArray);
Array.find()
方法找到要更新的对象,并更新其属性。// 原始对象数组
let objArray = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 3, name: 'Doe' }
];
// 更新对象的函数
function updateObjectInArray(array, object) {
let index = array.findIndex(item => item.id === object.id);
if (index !== -1) {
array[index] = { ...array[index], ...object }; // 复制原始对象并更新属性
}
return array;
}
// 更新对象
let updatedObject = { id: 2, name: 'Janet' };
objArray = updateObjectInArray(objArray, updatedObject);
console.log(objArray);
这些解决方案都会在对象数组中查找要更新的对象,并在找到后复制原始对象并更新所需的属性。然后,可以将更新后的对象数组赋值给原始数组以更新数据。