728x90
#문제
함수와 배열을 입력받아 배열의 각 요소에 함수를 적용했을 때 그 결과가 참인 요소만을 갖는 새로운 배열을 리턴해야 합니다.
for문 사용해라. arr.filter사용금지
#예시
function isOdd(num) {
return num % 2 === 1;
}
function isEven(num) {
return !isOdd(num);
}
let output = filterCallback(isOdd, [1, 2, 3, 4]);
console.log(output); // --> [1, 3]
output = filterCallback(isEven, [1, 2, 3, 4]);
console.log(output); // --> [2, 4]
#정답
function filterCallback(func, arr) {
//배열의 각 요소에 함수를 적용했을때
//그 결과가 참인 요소만을 갖는 새로운 배열을 리턴해라
let newArr = [];
for(let i=0; i<arr.length; i++){
if (func(arr[i]) === true){
newArr.push(arr[i]) ;
}
}
return newArr;
}
728x90