JavaScript reduce() 메서드 작동방식 설명 좀 해주세요.
관련링크
본문
<p id="demo"></p>
<script>
const numbers = [150, 50, 25];
document.getElementById("demo").innerHTML = numbers.reduce(myFunc); // 75
function myFunc(total, num) {
return total - num;
}
</script>
결과값이 75인데, 어떻게 동작해서 75가 나오는 건가요?
!-->답변 2
chat gpt를 돌려봤습니다.
JavaScript의 reduce()
함수는 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다. 리듀서 함수는 네 가지 인자를 받을 수 있습니다: accumulator (누산기), currentValue (현재 값), currentIndex (현재 인덱스), sourceArray (원본 배열).
여기서 리듀서 함수 myFunc
는 total
과 num
을 인자로 받고 있으며, total
에서 num
을 빼는 연산을 수행합니다.
reduce()
함수가 작동하는 방식은 다음과 같습니다:
total
의 초기값은 배열의 첫 번째 요소 (150
)이고,num
의 값은 배열의 두 번째 요소 (50
)입니다.- 첫 번째 호출에서
myFunc
는150 - 50
을 수행하여100
을 반환합니다. - 이제
total
은100
이 되고, 다음num
은 배열의 다음 요소인25
입니다. - 두 번째 호출에서
myFunc
는100 - 25
를 수행하여75
를 반환합니다.
배열의 모든 요소에 대해 이 연산이 끝나면, 최종적으로 75
가 남습니다. 그래서 document.getElementById("demo").innerHTML
에 75
가 할당되어 결과적으로 웹 페이지에서 75
가 출력됩니다.
-225라고 답변 달았던 분이 답변을 삭제하셨네요.
답변을 작성하시기 전에 로그인 해주세요.