배열 내장 함수를 정리했으니 테스트를 해보려고 한다.
일단 조건은 숫자 배열이 주어졌을 때 10보다 큰 숫자의 갯수를 반환하는 함수를 만드는 것이다.
console
에 5
가 찍히면 되는 문제이다.
function countBiggerThanTen(numbers) {
}
const count = countBiggerThanTen([1, 2, 3, 5, 10, 20, 30, 40, 50, 60]);
console.log(count); // 5
직접 테스트하며 주로 썼던건 reduce
,forEach
,filter
이다.
function countBiggerThanTen(numbers) {
let count = 0;
numbers.forEach(n => {
if (n > 10) {
count++;
}
});
return count;
}
const count = countBiggerThanTen([1, 2, 3, 5, 10, 20, 30, 40, 50, 60]);
console.log(count); // 5
export default countBiggerThanTen;
forEach문을 사용해보았다. 먼저
count
로 0을 잡아놓고 파라미터로 받아온numbers
에 forEach문을 실행시키고, if로 10 이상의 조건이 맞춰지면 count는 증가되어 10 이상인20,30,40,50,60
총5
가 나온다.
function countBiggerThanTen(numbers) {
return numbers.filter((n) => n > 10).length;
}
const count = countBiggerThanTen([1, 2, 3, 5, 10, 20, 30, 40, 50, 60]);
console.log(count); // 5
export default countBiggerThanTen;
numbers
에 filter 함수로 조건을10보다 클때
로 잡고 그 후에 새롭게 정렬되는 배열의 갯수를length
로 체크했다.
function countBiggerThanTen(numbers) {
return numbers.reduce((acc, current) => {
if (current > 10) {
return (acc += 1);
}
return acc;
}, 0);
const count = countBiggerThanTen([1, 2, 3, 5, 10, 20, 30, 40, 50, 60]);
console.log(count); // 5
export default countBiggerThanTen;
numbers
에 reduce 함수를 사용했고acc
와current
만 사용을 했다. 초기값을 0으로 잡고, if문에 current로 배열의 원소를 받아오고 받아온 원소가 10 이상일때마다 acc에 누적이 되도록 작업했다.