เราจำเป็นต้องเขียนฟังก์ชันอาร์เรย์ midElement() ที่ส่งคืนองค์ประกอบที่อยู่ตรงกลางสุดของอาร์เรย์โดยไม่ต้องเข้าถึงคุณสมบัติความยาวและไม่ต้องใช้ลูปในตัวใดๆ
หากอาร์เรย์มีจำนวนองค์ประกอบเป็นเลขคี่ เราจะคืนค่าหนึ่งองค์ประกอบที่อยู่ตรงกลางสุด หรือหากอาร์เรย์มีจำนวนองค์ประกอบที่เป็นคู่ เราจะคืนค่าอาร์เรย์ขององค์ประกอบที่อยู่ตรงกลางสุดสองรายการ
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr = [14, 32, 36, 42, 45, 66, 87];
const array = [13, 92, 83, 74, 55, 46, 74, 82];
const midElement = (arr, ind = 0) => {
if(arr[ind]){
return midElement(arr, ++ind);
};
return ind % 2 !== 0 ? [arr[(ind-1) / 2]] : [arr[(ind/2)-1],
arr[ind/2]];
};
console.log(midElement(arr));
console.log(midElement(array)); ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ในคอนโซล -
[ 42 ] [ 74, 55 ]