ฉันแค่ต้องแน่ใจว่าฉันรู้ว่าฟังก์ชันนี้ทำงานอย่างไร ฉันอ่านเนื้อหาและดูวิดีโอเกี่ยวกับฟังก์ชันลดขนาดประมาณ 3 ชั่วโมงเมื่อคืนนี้ ฉันไม่เข้าใจ ฉันก้าวออกจากคอมพิวเตอร์ ทำอาหาร ดูรายการทีวี แล้วก็ดูคอมพิวเตอร์อีกครั้ง และ BAM! ฉันเข้าใจแล้ว. ฉันรู้แล้วว่าฟังก์ชันลดทำงานอย่างไร
ฉันไม่รู้ว่าเหตุใดตัวอย่างแรกด้านล่างจึงใช้งานได้ในขณะที่ตัวอย่างที่สองไม่ทำงาน
แหล่งที่มา: Eloquent Javascript Ch. 5 §การทำให้แบนราบ
วิธีนี้ได้ผล:
var arrays = [[1, 2, 3], [4, 5], [6]];
var flattened = arrays.reduce(function(a, b) {
return a.concat(b);
});
flattened; //=>[1, 2, 3, 4, 5, 6]
ฉันพยายามเล่นซอกับโค้ดเพื่อเปลี่ยนตัวแปรเป็นฟังก์ชัน และอย่างใดฉันก็ทำลายมัน ด้านล่างนี้ส่งคืน undefined
และฉันไม่แน่ใจว่าทำไม
สิ่งนี้ใช้ไม่ได้:
var arrays = [[1, 2, 3], [4, 5], [6]];
function flattened(arr){
arr.reduce(function(a, b) {
return a.concat(b);
});
}
flattened(arrays); //=> undefined
เหตุใดฟังก์ชันแรกจึงใช้งานได้ แต่ไม่ใช่ฟังก์ชันที่สอง ฉันแน่ใจว่ามันเป็นสิ่งเล็กน้อยที่ฉันขาดหายไป