본문 바로가기

Javascript

[Javascript] 자바스크립트 Array | reduce() 메소드

728x90

< reduce( ) >

배열에서 활용하는 메소드이다. 배열 엘리먼트의 누적값, 현재값, 현재index 값을 사용해서 다룰 수 있다. 앞서 말한 값과 함께 배열 엘리먼트를 훑으면서 이용할 수 있기 때문에 여러가지 방법으로 활용할 수 있다. 배열의 합을 구할 때 많이 쓰인다. 

 

Syntax (문법)

 

reduce( (accumulator, currentValue, currentIndex) => {return 결과} , 초기값)

 

accumulator : 누적값

currentValue: 현재값

currentIndex : 현재index

 

 

- reduce() 메소드로 num3배열의 합을 구해보기

 

console.log 값에는 차례대로 누적값, 현재값, 현재index를 보여준다.

초기값은 let result의 맨 마지막 줄에 0으로 설정되어있기 때문에 처음 누적값도 0으로 보이는 것이다. 

* 만약 초기값을 3으로 설정했다면 누적값도 3부터 시작된다.

 

첫번째 줄, 처음 누적값이 0, 현재 index0번에는 1이 저장되어있으므로 현재값은 1, index번호는 0.

두번째 줄을 살펴보면, 아까 현재값이었던 1을 누적해주었으므로 누적값 1, 현재 index1번에는 2가 저장되어있으므로 현재값은 2, index 번호는 1.

이렇게 차례차례 누적을 하다보면 끝까지 합을 구할 수 있다.

 

 

 

< reduce( )와 삼항연산자를 같이 활용해보기  >

- 홀짝 구하기

 

 

num5 배열에는 [1,2,3,4,5,6,7,8]이 들어가있다. 그리고 이 숫자들이 홀수인지 짝수인지를 알아보기로 한다. 여기서 reduce()를 사용하여 숫자들을 훑으면서 가져와서 누적값에 넣어보자. 이때 숫자를 훑을 때 홀수인지 짝수인지 검사를 하고 넣어야한다. if..else 구문을 쓸 수도 있지만 삼항연산자를 함께 이용할 수도 있다. cur%2, 즉 현재값을 2로 나눈 값의 나머지이다. 만약 나머지가 1이라면 true, 0이라면 false일 것이다. 따라서 삼항연산자 구문의 : 에서 적는 순서를 본다면, '홀수' : '짝수' 로 적어야한다. 홀수 일 때 나머지가 1이 나올 것이고 이것은 true이기 때문이다. 그리고 이것을 acc(누적값)에 push 넣어준다. 그리고 acc를 result로 return(돌려준다.) 그리고 이것을 배열에 넣을 것이기 때문에 let result = num5.reduce(( )=>{ }, [ ] ); 여기 마지막 부분에 [ ] 빈배열을 넣어준다. 그러면 [ ] 를 초기값으로 배열에 넣어준다는 의미가 되기 때문이다. 그래서 누적값에 다 넣고 result를 출력해보면 배열안에 홀,짝이 잘 출력된다. 

 

 

 

 

 

 

 

참고

- reduce 활용 : https://hipdizzy.tistory.com/78

728x90