Algorithm 8 : getElementsLessThan100AtProperty

hyeongirlife·2021년 9월 14일
0

Algorithm

목록 보기
8/30

객체와 키를 입력받아 키에 해당하는 값이 배열인 경우, 100 보다 작은 요소들만 갖는 배열을 리턴해야 합니다.

예시

const obj = {
  key: [1000, 20, 50, 500],
};
let output = getElementsLessThan100AtProperty(obj, 'key');
console.log(output); // --> [20, 50]

생각

  • key에 해당하는 배열 중 100보다 작은 놈들만 뽑아내서 리턴하자(filter)
  • 근데 그 외의 경우는 배열이 아닌경우 or 숫자가 아닌 경우다 예외 케이스를 만들자
  • 배열이 아니면 빈 배열 리턴, 배열에서 숫자가 아닌 요소가 있으면 false 처리

풀이

function lessThan100(number) {
  if(typeof(number) !== 'number'){
  return false;
  }
  return number < 100;
}
function getElementsLessThan100AtProperty(obj, property) {
  if(!Array.isArray(obj[property])){
    return []
  }
  const output = obj[property].filter(num => lessThan100(num))
  return output
}

깨달은 점

  • lettThan100을 그대로 사용하지 않고 조건을 추가해서 풀어서 문제를 완벽하게 푼 게 아니다. 레퍼런스를 보니 너무 어려워서 못 풀겠더라. 이렇게라도 풀어서 전개과정만 이해해도 좋다고 생각한다.
  • property의 value가 배열이 아닌 경우는 !Array.isArray, 빈 배열은 .length === 0 을 이용하는 틀을 기억하기
profile
머릿속에 있는 내용을 정리하기

0개의 댓글

관련 채용 정보