当你更改find()返回的值时,原始数组会发生更改的原因是因为find()方法返回的是数组中满足条件的第一个元素的引用,而不是该元素的副本。因此,当你修改该引用指向的值时,原始数组中对应的元素也会被修改。
这是因为在JavaScript中,数组是引用类型,当你将数组赋值给一个变量时,实际上是将数组的引用赋值给了该变量。因此,无论你通过哪个变量修改数组中的元素,都会影响到原始数组。
如果你想避免修改原始数组,可以使用解构赋值或者Array.from()方法来创建一个新的数组副本,然后对副本进行修改,例如:
const originalArray = [1, 2, 3, 4, 5];
const newArray = [...originalArray]; // 使用解构赋值创建副本
// 或者 const newArray = Array.from(originalArray); 使用Array.from()方法创建副本
const foundElement = newArray.find(element => element === 3);
foundElement = 10; // 修改副本中的值,不会影响原始数组
这样,对副本进行的修改不会影响原始数组的内容。
领取专属 10元无门槛券
手把手带您无忧上云