JavaScript에서 객체에 담긴 여러 값 중 최댓값을 구하려면 Math.max() 메서드를 사용하면 됩니다. 이때 객체의 값들을 배열 형태로 변환해주는 Object.values()를 함께 활용하면 편리합니다.
구현 예제
아래 예제는 학생의 과목별 점수가 담긴 객체에서 가장 높은 점수와 해당 과목(키)을 찾는 코드입니다.
const studentMarksDetails = {
marks1: 78,
marks2: 69,
marks3: 79,
marks4: 74
}
const maximumMarks = Math.max(...Object.values(studentMarksDetails));
console.log("최고 점수 = " + maximumMarks);
for (const key of Object.keys(studentMarksDetails)) {
if (studentMarksDetails[key] == maximumMarks) {
console.log(`해당 객체 키 = '${key}'`);
break;
}
}코드 설명
Object.values(studentMarksDetails)는 객체의 모든 값을 배열로 반환합니다. 스프레드 연산자(...)를 사용해 이 배열의 요소들을 Math.max()에 개별 인수로 전달하면, 전체 값 중 가장 큰 숫자를 손쉽게 얻을 수 있습니다.
이후 Object.keys()로 객체의 키를 하나씩 순회하면서, 그 값이 최댓값과 일치하는 첫 번째 키를 찾아 출력하고 반복문을 종료합니다.
프로그램 실행 방법
위 프로그램을 실행하려면 다음 명령어를 사용합니다.
node fileName.js
여기서는 파일 이름이 demo91.js라고 가정합니다.
실행 결과
위 코드를 실행하면 아래와 같은 출력 결과를 확인할 수 있습니다.
PS C:\Users\Amit\JavaScript-code> node demo91.js 최고 점수 = 79 해당 객체 키 = 'marks3'
결과를 보면 네 개의 점수 중 가장 높은 값인 79가 출력되었으며, 해당 값이 저장된 변수명인 marks3도 함께 확인할 수 있습니다.