[問題] 代碼執行問題
各位版上的前輩高手們好:)
想請教各位,如果我想要把 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) 一樣呢??
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.205.120.144 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1648218938.A.A40.html
※ 編輯: d13751200344 (123.205.120.144 臺灣), 03/25/2022 22:37:34
→
03/26 00:13,
2年前
, 1F
03/26 00:13, 1F
→
03/26 00:14,
2年前
, 2F
03/26 00:14, 2F
推
03/26 15:08,
2年前
, 3F
03/26 15:08, 3F
→
03/26 15:08,
2年前
, 4F
03/26 15:08, 4F
→
03/26 21:25,
2年前
, 5F
03/26 21:25, 5F
→
03/26 21:25,
2年前
, 6F
03/26 21:25, 6F
推
03/26 21:36,
2年前
, 7F
03/26 21:36, 7F
→
03/26 21:36,
2年前
, 8F
03/26 21:36, 8F
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章