Phát hiện phần tử lớn nhất trong mảng số (lồng nhau) trong JavaScript
Chúng ta phải viết một hàm đơn giản trong JavaScript nhận vào một mảng số (lồng nhau ở bất kỳ cấp độ nào) 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ì kết quả đầ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ụ
Mã thực hiện như sau:
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));
Đầu ra
Kết quả trong console sẽ là:
994