ฟังก์ชันแบบเรียกซ้ำใน JavaScript

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

การเรียกซ้ำคืออะไร?

ใน JS และโดยทั่วไปแล้ว ฟังก์ชันแบบเรียกซ้ำคือ** ฟังก์ชันที่เรียกตัวเอง **ยกตัวอย่าง มาดูการใช้ฟังก์ชันแบบเรียกซ้ำในการคำนวณแฟกทอเรียลของตัวเลข n (แฟกทอเรียลเป็นผลคูณของจำนวนเต็มบวกที่มีจำนวนเต็มน้อยกว่านั้น เช่น 4! = 4x3x2x1 = 24)

ฟังก์ชันที่คำนวณแฟกทอเรียลของจำนวน n โดยการเรียกฟังก์ชันแบบเรียกซ้ำภายในตัวมันเอง (หมายเหตุ: ฟังก์ชันของฉันจะดีขึ้นหากทดสอบอาร์กิวเมนต์ที่เป็นค่าลบหรือไม่ใช่จำนวนเต็ม)



ในฟังก์ชันด้านบน คำสั่ง return มี ternary (เช่น |_+_|) ซึ่งถ้าตัวเลขไม่เท่ากับหนึ่ง จะคูณอาร์กิวเมนต์ (n) ด้วยค่าส่งคืนของ _the ฟังก์ชันเดียวกัน _แต่ถูกเรียกด้วย อาร์กิวเมนต์ |_+_| คือน้อยกว่าต้นฉบับ แน่นอน การเรียกใช้ฟังก์ชันที่ 2 นี้จะทำเช่นเดียวกันกับการเรียกครั้งที่ 3 และการเรียกครั้งถัดไปก็เหมือนเดิม ไปเรื่อยๆ จนกว่าอาร์กิวเมนต์ที่ผ่านไปจะเท่ากับ 1 และในกรณีนี้ จะส่งกลับหมายเลข 1 แทน ดังนั้น ถ้า |_+_| ตัวอย่างเช่น คำสั่งส่งคืนของเราจะถูกประเมินเป็น |_+_| ในท้ายที่สุด เพิ่มเติมเกี่ยวกับวิธีการส่งคืน 'ซ้อน' เหล่านี้ในตัวอย่างการย้อนกลับสตริงด้านล่าง

หลีกเลี่ยงลูปอนันต์

คุณจะสังเกตเห็นว่าในตัวอย่างข้างต้น เรามี 'เงื่อนไขการหลบหนี' สำหรับการเรียกซ้ำของเรา (อาร์กิวเมนต์ของ factorial() ในที่สุดจะ |_+_|1) คล้ายกับลูป (เช่น |_+_|ลูป) เงื่อนไข Escape เป็นข้อกำหนดสำหรับฟังก์ชันแบบเรียกซ้ำทั้งหมด!

การใช้การเรียกซ้ำเพื่อทำซ้ำ while Loop

รูปภาพสำหรับโพสต์

รูปภาพสำหรับโพสต์

การจำลองการทำงานของในขณะที่ (x ≥ 5) {x++} วนซ้ำโดยใช้การเรียกซ้ำ เอาต์พุตคอนโซลอยู่ทางด้านขวา

ด้านบนจะเห็นว่าการทำงานของ |_+_| . ของ JS ลูปสามารถทำซ้ำได้โดยใช้การเรียกซ้ำ แม้ว่าฉันจะไม่รู้ข้อดีของการทำเช่นนี้ แต่ก็น่าสนใจ

ย้อนกลับสตริง

ฉันไม่แน่ใจว่าตัวอย่างนี้จะมีประโยชน์เพียงใดในโลกแห่งความเป็นจริง แต่แน่นอนว่าฉันถูกถามในการทดสอบเทคโนโลยี และฉันหวังว่าฉันจะรู้วิธีใช้การเรียกซ้ำเพื่อแก้ปัญหา

รูปภาพสำหรับโพสต์

เช่นเดียวกับตัวอย่างแฟกทอเรียลด้านบน ตรรกะการเรียกซ้ำของเราสามารถพอดีภายในคำสั่งแบบไตรภาค ในกรณีนี้ เงื่อนไข Escape (aka 'exit') ของเราจะตรวจสอบว่าอาร์กิวเมนต์ที่ส่งผ่านไปยัง reverseString() จะเป็น |_+_| และถ้าเป็นเช่นนั้น จะเป็นสตริงว่าง |_+_| ถูกส่งกลับเป็นชนิด และการเรียกซ้ำจะหยุดลง

#beginner #javascript #web-development #recursion

medium.com

ฟังก์ชันแบบเรียกซ้ำใน JavaScript

การเรียกซ้ำคืออะไร? ใน JS และโดยทั่วไปแล้ว ฟังก์ชันแบบเรียกซ้ำคือฟังก์ชันที่เรียกตัวเอง ตัวอย่างเช่น ลองดูการใช้ฟังก์ชันแบบเรียกซ้ำในการคำนวณแฟกทอเรียลของตัวเลข n

ดูสิ่งนี้ด้วย: