고차함수 코드변환

1. 아래 코드를 이해해보자.

const filterMaped = arr.filter(x => x % 2 !== 0).map(x => x * 2); 
// filterMaped라는 변수에 arr의 요소 중 
//홀수만 모아 그 값에 2를 곱한 값이 할당 되었다.
console.log(filterMaped) // [2, 6, 10]

2. 1번의 코드를 reduce 를 한 번만 사용한 코드로 변형 해보겠다.

let arr = [1,2,3,4,5]
const filterMaped = arr.reduce(function(a,b){ 
if( b % 2 !== 0 ){ // b값중 홀수만 찾아내어 a 에 push 하였다.
a.push(b * 2)

}
return a
}, 0)

3. 이 메소드는 map, filter 를 동시에 사용한 코드보다 훨씬 직관적이며 빠르다.

Updated: