各位版上的前辈高手们好:)
想请教各位,如果我想要把 Array 中的值乘以2,则代码:
let A = [9000, 8500, 5500, 6500];
let B = A.map(function (value, index, array){
return value*2;
});
console.log(A)
// [9000, 8500, 5500, 6500] - 原阵列不会被修改
console.log(B)
// [18000, 17000, 11000, 13000] — X2的结果,新的阵列
第一组完全是预期中对结果,但如果改成下方:
let A = [9000, 8500, 5500, 6500];
let B = A.map(function (value, index, array){
return array[index] = value*2
});
console.log(A)
// [18000, 17000, 11000, 13000] - 原阵列竟然改变了?!
console.log(B)
// [18000, 17000, 11000, 13000] - 正常
请问为何第二组代码的 console.log(A) 结果与 console.log(B) 一样呢??