추가과제 2번 Reduce method

최영노·2021년 1월 15일
0

문제

아래 코드를 reduce를 한 번만 사용한 코드를 변경하여 스스로 작성하고,
직접 설명한 내용을 적어주세요.

const filterMaped = arr.filter(x => x % 2 !== 0).map(x => x * 2);
console.log(filterMaped) // [2, 6, 10]

해석

arr.filter(x => x % 2 !==0) 이 수식을 통해 짝수인 수를 제외시킨다 (홀수인 수를 출력한다)

.map(x => x * 2) 이 수식을 통해 출력된 수들을 2씩 곱해준다.

console.log 를 통해 예를 들어 arr.filter 에서 [1,3,5] 가 나왔을 때 .map 을 통해 2씩 곱하여서 [2,6,10] 이 결과값으로 출력된다.

코드 작성


const arr = [1,2,3,4,5]
const Reducechanger = arr.reduce(function(acc,cur){
  if(cur % 2 !==0){
    acc.push(cur * 2)
  }
  return acc
},[])

(주의! 최초값을 0으로 설정할 경우엔 빈 배열을 따로 선언해야만 한다.)

1) arr 을 [1,2,3,4,5] 로 선언을 해주고, Reducechangerreduce 메서드를 활용한다.

2) 최초값을 빈 배열로 정의하고, 조건문에서 통과되어 출력된 값 (홀수 cur * 2) 을 최초값에 넣어준다.

3) 최초값을 현재값에 2를 곱한 수가 push 된다.

- 종합적으로 봤을 때, 이 reduce 메서드는 배열을 하나 하나 돌며 예전의 리턴값, 현재 리턴값을 갖고 활용할때 좋은 메서드라고 생각이 들었다.

profile
개발자를 꿈꾸는 한 사람

0개의 댓글