Viết hàm đệ quy tìm phần tử giữa mảng không dùng .length và không dùng loop.
- Số phần tử lẻ: trả về phần tử giữa
- Số phần tử chẵn: trả về mảng 2 phần tử giữa
Giải pháp
Mã triển khai (đệ quy đếm độ dài):
const arr = [14, 32, 36, 42, 45, 66, 87]; // 7 phần tử
const array = [13, 92, 83, 74, 55, 46, 74, 82]; // 8 phần tử
const midElement = (arr, ind = 0) => {
// Đệ quy tìm độ dài
if (arr[ind] !== undefined) {
return midElement(arr, ind + 1);
}
// ind = length
if (ind % 2 === 1) { // lẻ
return [arr[(ind - 1) / 2]];
} else { // chẵn
return [arr[ind/2 - 1], arr[ind/2]];
}
};
console.log(midElement(arr)); // [42]
console.log(midElement(array)); // [74, 55]
Kết quả
Đầu ra trong console:
[42]
[74, 55]