สมมติว่าเราต้องเขียนฟังก์ชันง่ายๆ ใน JavaScript ที่รับอาร์เรย์ตัวเลข (ซ้อนกันได้หลายระดับ) เข้ามา และคืนค่าตัวเลขที่มากที่สุดในอาร์เรย์
ตัวอย่างเช่น หากอาร์เรย์อินพุตคือ:
const arr = [
34, 65, 67,
[
43, 76, 87, 23, 56, 7,
[
54, 7, 87, 23, 79, 994, 2
],
54
],
54, 4, 2
];ผลลัพธ์ควรเป็น 994
เราจะใช้ recursion เพื่อหาค่าสูงสุดในอาร์เรย์
ตัวอย่าง
โค้ดต่อไปนี้เป็นตัวอย่าง:
const arr = [
34, 65, 67,
[
43, 76, 87, 23, 56, 7,
[
54, 7, 87, 23, 79, 994, 2
],
54
],
54, 4, 2
];
const getGreatest = (arr, greatest = -Infinity) => {
for(let i = 0; i < arr.length; i++){
if(Array.isArray(arr[i])){
return getGreatest(arr[i], greatest);
};
if(arr[i] > greatest){
greatest = arr[i];
}
};
return greatest;
};
console.log(getGreatest(arr));ผลลัพธ์
จะแสดงผลในคอนโซลดังนี้:
994