I code, therefore I exist.

웹 프론트 엔드 개발을 공부하고 있는 Ocean이라고 합니다. 만나서 반갑습니다.

ETC/Algorithm

성적 객체에서 최고점, 최저점 뽑기

Ocean 2024. 2. 11. 02:47
const scores = {
	"Math" : 85,
    	"English" : 92,
    	"History" : 78,
    	"Science" : 95,
    	"Art" : 89,
	};

 

 

문제

 

이러한 형태의 객체를 전달 받았을 때, 최고점인 과목의 이름과 최저점인 과목의 이름을 배열로 리턴하시오!

// 출력값
[ 'History', 'Science' ]

 

정답

 

function getMinMaxScoreSubject(scoreObject) {
  const subjects = Object.keys(scoreObject);

  let minSubject = subjects[0];
  let minSubjectScore = scoreObject[minSubject];

  for (let i = 1; i < subjects.length; i++) {
    let curSubject = subjects[i];
    let curScore = scoreObject[curSubject];
    
    if (minSubjectScore > curScore) {
      minSubject = subjects[i];
      minSubjectScore = scoreObject[minSubject];
    }
  }

  let maxSubject = subjects[0];
  let maxSubjectScore = scoreObject[maxSubject];

  for (let i = 1; i < subjects.length; i++) {
    let curSubject = subjects[i];
    let curScore = scoreObject[curSubject];

    if (maxSubjectScore < curScore) {
      maxSubject = subjects[i];
      maxSubjectScore = scoreObject[maxSubject];
    }
  }
  return [minSubject, maxSubject];
}

console.log(getMinMaxScoreSubject(scores));

 

Object.keys()를 통해서 객체의 속성들을 뽑고,

객체[객체의속성]으로 해당 객체의 값에 접근한다.