Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

หาองค์ประกอบกลางของอาร์เรย์ด้วยการเรียกซ้ำ (Recursion) JavaScript

เราต้องเขียนฟังก์ชันอาร์เรย์ ชื่อว่า findMiddle ที่คืนค่าองค์ประกอบกลางของอาร์เรย์ โดยไม่เข้าถึง property length และไม่ใช้ลูปในตัว (built-in loops) ถ้าอาร์เรย์มีจำนวนองค์ประกอบเป็นคี่ เราคืนค่าองค์ประกอบกลางเพียงตัวเดียว ถ้ามีจำนวนคู่ เราคืนค่าอาร์เรย์ขององค์ประกอบกลางสองตัว

มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน 正如คุณคาดเดาไว้ เราจะใช้ recursion เพื่อหาองค์ประกอบเหล่านี้ โค้ดสำหรับฟังก์ชันเรียกซ้ำจะเป็นดังนี้:

ตัวอย่างโค้ด

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 ]