상세 컨텐츠

본문 제목

Javascript 고차 함수문제(6) - classicMovies

Programming Language/JavaScript

by Yongari 2022. 12. 10. 23:08

본문

 

문제

영화 정보가 담긴 객체를 요소로 갖는 배열과 연도를 입력받아 해당 연도 이전의 영화를 요소로 갖는 배열을 리턴해야 합니다.


입력
arr :
객체를 요소로 갖는다.
arr[i]는 'title', 'year'등의 속성을 갖는 객체
'year' 속성은 number 타입 (1이상의 정수)

출력
string 타입을 요소로 갖는 배열을 리턴해야 합니다.
각 요소는 영화 제목 by 영화 감독의 형태를 가져야 합니다.

 

입출력 예시

let output = classicMovies(
  [
    {
      title: 'Batman',
      year: 1989,
      director: 'Tim Burton',
      imdbRating: 7.6,
    },
    {
      title: 'Batman Returns',
      year: 1992,
      director: 'Tim Burton',
      imdbRating: 7.0,
    },
    {
      title: 'Batman Forever',
      year: 1995,
      director: 'Joel Schumacher',
      imdbRating: 5.4,
    },
  ],
  1993
);

console.log(output); // --> ["Batman by Tim Burton", "Batman Returns by Tim Burton"]


풀이코드 설명

function classicMovies(arr, year) {
  // newArr 변수에 입력받은 year 보다 작은 year를 갖고있는 배열로 필터링을 한다.
  const newArr = arr.filter(function(el){
    return el['year'] < year;
  })

  return newArr.map(function(el){
    // map 기능을 통해 모든 요소를 순회하면서 return 문을 반환한다.
    return el['title'] + " by " + el['director'];
  })
}

관련글 더보기