반응형
배열 내장 함수를 정리했으니 테스트를 해보려고 한다.
일단 조건은 숫자 배열이 주어졌을 때 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이다.
forEach
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가 나온다.
filter
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로 체크했다.
reduce
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에 누적이 되도록 작업했다.
반응형
'Javascript' 카테고리의 다른 글
[javascript] - 07 프로토타입과 클래스 - es6 class (0) | 2023.01.16 |
---|---|
[javascript] - 07 프로토타입과 클래스 - 객체 생성자 상속받기 (0) | 2023.01.16 |
[javascript] 6. 배열 내장 함수 - reduce (0) | 2023.01.16 |
[javascript] 6. 배열 내장 함수 - filter (0) | 2023.01.16 |
[javascript] 6. 배열 내장 함수 - map, indexOf, findIndex, find (0) | 2023.01.16 |
댓글