需求:
let arr = [
{name: '小明', age: 11, sex: '男'},
{name: '小红', age: 12, sex: '女'},
{name: '小白', age: 13, sex: '男'}
];
请找出name=小白那一项,并替换为 {name: '大大', age: 9, sex: '女'}
解决:
要找出数组arr
中name
属性为"小白"的对象,并将其替换为新的数据,你可以使用数组的findIndex
方法来找到该对象的索引,然后使用splice
方法进行替换。以下是实现这一功能的示例代码:
let arr = [
{name: '小明', age: 11, sex: '男'},
{name: '小红', age: 12, sex: '女'},
{name: '小白', age: 13, sex: '男'}
];
// 使用findIndex找到name为"小白"的索引
let index = arr.findIndex(item => item.name === '小白');
if (index !== -1) {
// 如果找到了,使用splice替换该项
arr.splice(index, 1, {name: '大大', age: 9, sex: '女'});
}
console.log(arr);
在这段代码中,findIndex
方法遍历数组arr
,寻找name
属性为"小白"的对象,并返回其索引。如果找到了,findIndex
将返回该对象在数组中的索引,否则返回-1
。
如果index
不是-1
,我们使用splice
方法来替换数组中的项。splice
的第一个参数是开始替换的索引位置,第二个参数是要删除的元素数量(在这个例子中是1,因为我们只替换一个元素),第三个参数是替换进去的新对象。
执行上述代码后,数组arr
中的"小白"将被替换为"大大"。