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라고 답변 달았던 분이 답변을 삭제하셨네요.
답변을 작성하시기 전에 로그인 해주세요.