เราจำเป็นต้องเขียนฟังก์ชันอาร์เรย์ เช่น findMiddle ที่ส่งคืนองค์ประกอบที่อยู่ตรงกลางสุดของอาร์เรย์โดยไม่ต้องเข้าถึงคุณสมบัติความยาวและไม่ต้องใช้ลูปในตัวใดๆ หากอาร์เรย์มีจำนวนองค์ประกอบเป็นคี่ เราจะคืนค่าหนึ่ง ตรงกลางสุด องค์ประกอบ หรือถ้าอาร์เรย์มีจำนวนองค์ประกอบที่เป็นคู่ เราจะคืนค่าอาร์เรย์ขององค์ประกอบที่อยู่ตรงกลางสุดสองรายการ
มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน ตามที่คุณได้เดาแล้ว เราจะใช้การเรียกซ้ำเพื่อค้นหาองค์ประกอบเหล่านี้ รหัสสำหรับฟังก์ชันแบบเรียกซ้ำจะเป็น −
ตัวอย่าง
const arr = [1, 2, 3, 4, 5, 6, 7]; const array = [1, 2, 3, 4, 5, 6, 7, 8]; const findMiddle = (arr, ind = 0) => { if(arr[ind]){ return findMiddle(arr, ++ind); }; return ind % 2 !== 0 ? [arr[(ind-1) / 2]] : [arr[(ind/2)-1], arr[ind/2]]; }; console.log(findMiddle(arr)); console.log(findMiddle(array));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
[ 4 ] [ 4, 5 ]