- for 문을 사용한 함수
- filter를 사용한 함수
- reduce를 사용한 함수
아래의 동일한 배열이 존재할 때 짝수(or 홀수) 를 반환하는 함수를 만들어보자.
let inputArr = [1, 2, 3, 4, 5, 6, 7];
function evenArr (arr) {
let evenNums = [];
for (let i = 0; i <= arr.lengh; i++){
if(arr[i] % 2 === 0){
evenNums.push(arr[i]);
}
}
return evenNums;
}
// 1. 비어있는 배열 생성
// 2. 해당 배열에 담긴 수 만큼 조건문을 반복실행
// 3. 배열에 담긴 숫자를 2로 나누었을 때 나머지가 0인 숫자만 비어있는 배열에 담기
function evenArr (arr) {
return arr.filter(num => num % 2 === 0);
}
// 필터함수를 사용해서 한 줄로 요약 가능~!
function evenArr (arr) {
return arr.reduce((evenNums, num) => {
if(num % 2 === 0){
evenNums.push(num);
}
return evenNums;
}, []);
}
// 1. reduce 함수의 반복에서 각 num에 해당하는 수를 평가
// 2. 현재 요소가 짝수 일 때 배열에 추가
// 3. 초기값은 빈 배열 [] 을 사용
이 세가지의 방법은 코드 간결성으로 인한 가독성이나 코드 작성에 따라 각각 장단점에 맞춰 사용하면 된다.
추가로 홀수값을 반환하려면 수를 나눈 나머지 값이 1 이 되도록
if(num % 2 === 1)
위와 같이 0을 1로 수정해주면 된다.