Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm giá trị lớn nhất trong mảng lồng nhau - JavaScript


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