상세 컨텐츠

본문 제목

Javascript 고차 함수문제(5) - getOnlyAllowedToDrink

Programming Language/JavaScript

by Yongari 2022. 12. 10. 22:55

본문

문제

개인 정보를 담고 있는 객체를 요소로 갖는 배열을 입력받아 18세 이상인 사람의 이름을 요소로 갖는 배열을 리턴해야 합니다.



입력
arr : 객체를 요소로갖는 배열

arr[i]는 'name', 'age' 속성을 갖고 'age'속성은 number 타입이며 양수

 

출력
string 타입을 요소로 갖는 배열을 리턴해야 합니다.


입출력 예시


let output = getOnlyAllowedToDrink([
  { name: 'Harry', age: 15 },
  { name: 'Ron', age: 14 },
  { name: 'Hermione', age: 14 },
]);
console.log(output); // --> []

output = getOnlyAllowedToDrink([
  { name: 'Cho', age: 14 },
  { name: 'Dumbledore', age: 87 },
  { name: 'Snape', age: 53 },
  { name: 'Hagrid', age: 43 },
]);
console.log(output); // --> ['Dumbledore', 'Snape', 'Hargrid']

output = getOnlyAllowedToDrink([]);
console.log(output); // --> []

 

풀이코드 설명

function getOnlyAllowedToDrink(arr) {
  //18세 이상인 사람들로만 구성된 배열을 입력받기
  const filteredList = arr.filter(function (person) {
    return person.age >= 18;
  });

  // 18세 이상인 사람들의 배열을 전부 순회하면서 이름을 반환하기
  return filteredList.map(function (person) {
    return person.name;
  });
}

// function getOnlyAllowedToDrink(arr) {
//   // TODO: 여기에 코드를 작성합니다.
//   let res = arr.map(function(arg){
//     if(arg.age >= 18) return arg.name;
//   })

//   return res.filter(function(arg){
//     return arg !== undefined;
//   })
// }



관련글 더보기