Giả sử chúng ta cần viết một hàm đơn giản trong JavaScript nhận vào mảng số sau (có thể lồng nhau ở bất kỳ cấp độ nào):
const arr = [
15, 24,
[
29, 85, 56,
[
36, 14, 6, 98, 34, 52
],
22
], 87, 60
];và trả về số lớn nhất có trong mảng.
Ví dụ,
Nếu mảng đầu vào là:
const arr = [
34, 65, 67,
[
43, 76, 87, 23, 56, 7,
[
54, 7, 87, 23, 79, 994, 2
],
54
], 54, 4, 2
];Thì đầu ra nên là:
994
Chúng ta sẽ dùng đệ quy để tìm số lớn nhất trong mảng.
Ví dụ
Dưới đây là đoạn code:
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));Kết quả
Đoạn code sẽ in ra console:
994