Array.prototype.find() 得到的元素是引用类型的,还是复制了一个元素
Array.prototype.find()
返回的是原数组中的元素引用,而不是复制的新元素。
在 JavaScript 中,对象(包括数组和函数)都是通过引用传递的。当你从数组中获取一个对象时,实际上获取的是对原对象的引用。因此,如果你修改了通过 Array.prototype.find()
获取的对象,原数组中对应的对象也会被修改。
例如:
let arr = [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }];
let obj = arr.find(item => item.id === 1);
obj.name = 'Updated'; // 修改找到的对象
console.log(arr);
// 输出:[ { id: 1, name: 'Updated' }, { id: 2, name: 'Bob' } ]
// 可以看到原数组中的对象也被修改了