108 of 264 menu

reduce 메서드

reduce 메서드는 배열을 하나의 값으로 축소합니다(리듀스). 예를 들어, 이 메서드를 사용하면 배열 요소의 합을 쉽게 찾을 수 있습니다(즉, 배열이 요소의 합이라는 하나의 값으로 축소됩니다).

reduce 메서드는 첫 번째 매개변수로 함수를 받으며, 이 함수는 첫 번째 요소부터 시작하여 배열의 각 요소에 대해 순차적으로 실행됩니다. 이 함수에는 4개의 매개변수를 전달할 수 있습니다. 이러한 매개변수가 존재하는 경우(필수는 아님), 첫 번째 매개변수에는 자동으로 중간 결과가, 두 번째 매개변수에는 배열 요소가, 세 번째 매개변수에는 배열 내 인덱스가, 네 번째 매개변수에는 배열 자체가 전달됩니다.

중간 결과는 reduce 메서드가 배열의 모든 요소를 순회한 후 반환할 값을 누적하는 변수입니다. 예를 들어, 배열 요소의 합을 순차적으로 누적할 수 있습니다: 처음에는 첫 번째 요소를 넣고, 다음 루프에서는 첫 번째와 두 번째 요소의 합을, 그 다음에는 첫 번째, 두 번째, 세 번째 요소의 합을 넣는 식입니다. 이 과정은 배열이 끝날 때까지 계속됩니다. reduce가 받는 함수는 새로운 중간 결과 값을 반환해야 합니다.

reduce 메서드의 두 번째 매개변수는 중간 결과의 초기값을 지정합니다. 지정하지 않으면 초기값은 배열의 첫 번째 요소가 되며, 요소 처리는 두 번째 요소부터 시작됩니다.

구문

배열.reduce(function(중간결과, 요소, 인덱스, 배열) { return 새로운 중간결과; }, 초기값);

예제

배열 요소의 합을 구해봅시다:

let arr = [1, 2, 3, 4, 5, 6]; let res = arr.reduce(function(sum, elem) { return sum + elem; }, 0); console.log(res);

코드 실행 결과:

21

예제

배열의 모든 양수의 합을 구해봅시다:

let arr = [1, -2, -3, 4, 5, -6]; let res = arr.reduce(function(sum, elem) { if (elem >= 0) { return sum + elem; } else { return sum; } }, 0); console.log(res);

코드 실행 결과:

10

함께 보기

  • 유사한 작업을 수행하는 메서드 reduceRight,
  • 배열 요소를 필터링할 수 있는 메서드 filter,
  • 배열의 각 요소에 함수를 적용할 수 있는 메서드 mapforEach,
  • 배열 검사를 수행하는 메서드 someevery,
한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부