3차원 배열에서 가장 큰 숫자 찾기
다음과 같은 3차원(중첩) 배열이 있다고 가정해 보겠습니다.
var theValuesIn3DArray = [75, [18, 89], [56, [97], [99]]];
이처럼 깊이 중첩된 배열에서 최댓값을 구하려면 flat() 메서드와 Math.max()를 함께 사용하는 것이 가장 간단한 방법입니다.
핵심 개념
flat(Infinity)는 배열의 모든 깊이에 있는 중첩 배열을 한 번에 평탄화(flattening)하여 하나의 1차원 배열로 만들어 줍니다. 이후 전개 연산자(...)를 사용하여 평탄화된 배열의 요소들을 Math.max()에 개별 인수로 전달하면 전체 배열에서 가장 큰 숫자를 얻을 수 있습니다.
예제
var theValuesIn3DArray = [75, [18, 89], [56, [97], [99]]];
Array.prototype.findTheLargestNumberIn3dArray = function (){
return Math.max(...this.flat(Infinity));
}
console.log("3차원 배열에서 가장 큰 숫자는=");
console.log(theValuesIn3DArray.findTheLargestNumberIn3dArray());위 예제에서는 Array.prototype에 사용자 정의 메서드를 추가하여 어떤 배열에서든 재사용할 수 있도록 했습니다. 이 방식은 배열의 중첩 깊이가 몇 단계든 상관없이 동작한다는 장점이 있습니다.
프로그램 실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력합니다.
node fileName.js
여기서는 파일 이름이 demo202.js라고 가정합니다.
출력 결과
프로그램을 실행하면 아래와 같은 결과가 출력됩니다.
PS C:\Users\Amit\javascript-code> node demo202.js 3차원 배열에서 가장 큰 숫자는= 99
배열 내 최댓값인 99가 올바르게 출력되는 것을 확인할 수 있습니다.