PS/제코베 JS 100제

제코베 JS 100제 / 56 / 객체의 함수 응용

KimMinJun 2022. 8. 26. 17:30

다음의 객체가 주어졌을 때 한국의 면적과 가장 비슷한 국가와 그 차이를 출력하세요.

 

function solution(country_area) {
  // 한국의 면적 저장
  const korea_area = country_area["korea"];
  // 객체에서 한국에 대한 정보 삭제
  delete country_area.korea;

  // [나라, 면적]을 배열로 저장
  let area_entries = Object.entries(country_area);
  // 면적의 값만 배열로 저장
  let areas = Object.values(country_area);

  for (let i = 0; i < areas.length; i++) {
    // 면적의 차이 구하기
    areas[i] = Math.abs(areas[i] - korea_area);
    area_entries[i][1] = Math.abs(area_entries[i][1] - korea_area);
  }

  // 면적의 차이가 가장 작은 면적 구하기
  const similar_area = Math.min(...areas);
  // 가장 면적이 비슷한 나라 구하기
  const similar_country = area_entries
    .filter((el) => el[1] === similar_area)
    .flat();

  console.log(...similar_country);
}

const country_area = {
  korea: 220877,
  Russia: 17098242,
  China: 9596961,
  France: 543965,
  Japan: 377915,
  England: 242900,
};
solution(country_area); // England 22023