📅  最后修改于: 2023-12-03 15:25:54.439000             🧑  作者: Mango
在JavaScript中,更新数组状态中的对象是一项常见的任务。本文将介绍如何使用索引对数组中的对象进行更新。
首先,让我们创建一个数组和一个对象,以演示如何按索引更新数组状态中的对象。
let cars = [
{ make: 'Honda', model: 'Civic', year: 2018 },
{ make: 'Toyota', model: 'Corolla', year: 2019 },
{ make: 'Ford', model: 'Mustang', year: 2020 }
];
let carToUpdate = { make: 'Toyota', model: 'Corolla', year: 2019 };
以上代码创建了一个名为cars
的数组和一个名为carToUpdate
的对象。数组cars
中包含三个车辆对象,而carToUpdate
对象包含一个要更新的车辆。
接下来,我们需要使用数组findIndex
方法来查找要更新的车辆在数组中的索引位置。
let index = cars.findIndex(car => car.make === carToUpdate.make && car.model === carToUpdate.model && car.year === carToUpdate.year);
在上面的代码中,我们使用了findIndex
方法来查找cars
数组中成员与carToUpdate
相同的对象。一旦找到,findIndex
方法将返回该成员在数组中的索引位置。否则,它将返回-1。
现在,我们可以使用索引位置来更新cars
数组中的对象。
if (index !== -1) {
cars[index] = { make: 'Toyota', model: 'Corolla', year: 2020 };
}
在上面的代码中,我们首先使用一个条件语句来检查index
是否为-1。如果index
不是-1,则表示在数组cars
中找到了一个与carToUpdate
对象匹配的对象。接下来,我们使用索引位置将该对象在cars
数组中更新为一个新的对象。
最终,我们将得到更新后的cars
数组,其中包含一个更新后的对象。
console.log(cars);
/*
[
{ make: 'Honda', model: 'Civic', year: 2018 },
{ make: 'Toyota', model: 'Corolla', year: 2020 },
{ make: 'Ford', model: 'Mustang', year: 2020 }
]
*/
以上就是按索引更新数组状态中的对象的做法。希望这篇文章对你有所帮助!