确保Array.Map()方法在没有使用返回值的情况下不会改变状态,可以通过使用Array.forEach()方法代替。
示例代码:
const arr = [1, 2, 3];
// 使用Array.Map()方法 const mappedArr = arr.map(num => num * 2); console.log(mappedArr); // [2, 4, 6]
console.log(arr); // [1, 2, 3],原始数组未改变
// 未使用返回值的情况下使用Array.Map()方法改变状态 arr.map(num => { num *= 2; });
console.log(arr); // [1, 2, 3],期望值为原始数组,但实际上被修改了
// 使用Array.forEach()方法 arr.forEach((num, index, arr) => { arr[index] = num * 2; });
console.log(arr); // [2, 4, 6],原始数组被正确修改