1. getElementsLessThan100AtProperty
- lessThan100 함수는 number 를 인자로 받으며 number < 100 을 리턴한다.
- getElementsLessThan100AtProperty 함수는 인자로 obj(객체) 와 property(string) 을 받는다.
- 이때, obj의 키가 property 와 같으면, 그 중 number 타입의 요소만 getElementsLessThan100AtProperty 함수를
사용하여 배열로 리턴해야 한다.
function lessThan100(number) {
if(typeof(number) === 'number') { // number 라고 했다고, 모두 number 타입만 나오는 것은 아니기 때문에 타입이 number인 조건을 넣는다.
return number < 100;
}
}
function getElementsLessThan100AtProperty(obj, property) {
if(!Array.isArray(obj[property])) { // 배열만을 리턴해야 하기 때문에, 배열이 아닌 경우는 제외한다.
return [];
} else {
let result = obj[property].filter(lessThan100) // filter 로 obj 중에 키가 property 인 것 중에, lessThan100 함수를 사용한다.
return result;
}
}
- 처음에는 obj의 키를 얻어 내기 위해 닷 노테이션을 사용했지만 변수로 property 를 비교 해야 하기 때문에 브라켓 노테이션으로 바꿨다.
- 이후, lessThan100 함수에서 타입이 맞지 않는 경우를 제외 하기 위해 number 타입이 아니면 빼버렸다.
- 실행 결과를 계속 실행해 가면서 점점 상황을 줄여 나가서 풀 수 있었다.