ฉันรู้ว่ามีหัวข้อแบบนี้มากมาย และฉันรู้พื้นฐาน: .forEach()
ทำงานบนอาร์เรย์เดิมและอาร์เรย์.map()
ใหม่
ในกรณีของฉัน:
function practice (i){
return i+1;
};
var a = [ -1, 0, 1, 2, 3, 4, 5 ];
var b = [ 0 ];
var c = [ 0 ];
console.log(a);
b = a.forEach(practice);
console.log("=====");
console.log(a);
console.log(b);
c = a.map(practice);
console.log("=====");
console.log(a);
console.log(c);
และนี่คือผลลัพธ์:
[ -1, 0, 1, 2, 3, 4, 5 ]
=====
[ -1, 0, 1, 2, 3, 4, 5 ]
undefined
=====
[ -1, 0, 1, 2, 3, 4, 5 ]
[ 0, 1, 2, 3, 4, 5, 6 ]
ฉันไม่สามารถเข้าใจว่าทำไมการใช้practice
ค่าเปลี่ยนแปลงไปb
ฉันขอโทษหากนี่เป็นคำถามที่ไร้สาระ แต่ฉันค่อนข้างใหม่ในภาษานี้และคำตอบที่ฉันพบจนถึงตอนนี้ไม่ตรงใจฉันundefined
.map
ส่งคืนอาร์เรย์ใหม่ในขณะที่.forEach
ไม่ส่งคืนอะไรเลย โดยทั่วไปถ้าคุณต้องการที่จะได้รับการปรับเปลี่ยนรูปแบบของอาเรย์ก่อนหน้านี้คุณใช้ถ้าคุณไม่ต้องการที่คุณใช้.map
.forEach