📅  最后修改于: 2023-12-03 15:38:57.758000             🧑  作者: Mango
在开发中,我们通常需要在数组中根据对象的 id 值来查找和更新特定的对象。本篇文章将介绍如何根据 id 值在数组中进行对象的更新,同时如果 id 不存在,则在数组末尾附加一个新的对象。
// 定义初始数组
const arr = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
];
// 定义要更新的对象
const newObj = { id: 1, name: 'James' };
// 查找数组中是否存在要更新的对象,如果存在则将其更新
const index = arr.findIndex(obj => obj.id === newObj.id);
if (index !== -1) {
arr.splice(index, 1, newObj);
} else {
arr.push(newObj);
}
console.log(arr);
// 输出结果:[{ id: 1, name: 'James' }, { id: 2, name: 'Jane' }]
上述代码首先定义了一个初始数组 arr
,以及要更新的对象 newObj
。然后使用 findIndex
方法和箭头函数来查找数组中是否存在要更新的对象,如果存在则使用 splice
方法将其替换为新的对象。如果不存在则使用 push
方法将新的对象附加在数组末尾。
// 定义初始数组
const arr = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
];
// 定义要更新的对象
const newObj = { id: 1, name: 'James' };
// 使用 map 方法创建一个新的数组,对要更新的对象进行更新或附加
const newArr = arr.map(obj => obj.id === newObj.id ? Object.assign({}, obj, newObj) : obj);
if (newArr === arr) {
newArr.push(newObj);
}
console.log(newArr);
// 输出结果:[{ id: 1, name: 'James' }, { id: 2, name: 'Jane' }]
上述代码首先定义了一个初始数组 arr
,以及要更新的对象 newObj
。然后使用 map
方法创建一个新的数组 newArr
,并对要更新的对象进行更新或附加。如果新的数组 newArr
和原始数组 arr
相同,则说明没有找到要更新的对象,需要使用 push
方法将其附加在新的数组末尾。
综上所述,根据 id 值来更新数组中的对象并附加新的对象可以有多种实现方式,开发者可以根据自己的业务场景和喜好选择适合自己的方法。