[javascript] 객체의 속성 값을 기준으로 최대값 찾기
자바스크립트에서 객체의 속성 값을 기준으로 최대값을 찾는 방법을 알아보겠습니다.
객체의 구조
아래와 같은 구조를 갖는 객체를 예시로 사용하겠습니다.
const students = {
student1: { name: "John", age: 20 },
student2: { name: "Jane", age: 22 },
student3: { name: "Mike", age: 18 },
student4: { name: "Sarah", age: 21 },
};
이 객체는 각각의 학생을 나타내며, 이름과 나이라는 속성을 갖고 있습니다.
최대값 찾기
자바스크립트의 Object.keys()
메소드와 Array.reduce()
메소드를 활용하여 객체의 속성 값을 기준으로 최대값을 찾을 수 있습니다.
다음은 위에서 정의한 students
객체의 나이 속성을 기준으로 최대 나이를 찾는 코드입니다.
const maxAge = Object.keys(students).reduce((max, key) => {
const student = students[key];
if (student.age > max) {
return student.age;
}
return max;
}, -Infinity);
console.log(maxAge); // 출력: 22
위 코드에서 Object.keys(students)
는 students
객체의 속성 이름들을 배열로 반환합니다. 그리고 reduce()
메소드를 사용하여 배열의 각 요소를 순회하면서 최대값을 찾습니다. 초기값으로 -Infinity
를 설정하여 비교할 때 이보다 작은 값이 나올 수 있도록 합니다.
reduce()
메소드의 콜백 함수에서는 각 학생(student
)의 나이를 최대값(max
)과 비교하여 더 큰 값을 반환합니다. 최대값이 갱신될 때마다 새로운 최대값으로 설정됩니다.
결과
위 코드를 실행하면 22
가 출력되며, 이는 students
객체 중 가장 나이가 많은 학생의 나이입니다.