• 회원가입
  • 로그인
  • 구글아이디로 로그인

[Array] JS - reduce() 메서드 ★ - 왼쪽 배열값부터 계산 (= reduce메서드 = 리듀스메서드) ※ 각각의 배열값에 대해 콜박함수 실행 후 누적단일값 반환 ※ 배열값 반올림 후 합산

목차
  1. array.reduce() 예제 - 배열 각 요소에 함수 실행 후 단일값 반환
  2. array.reduce() 정의
  3. array.reduce() 구문
  4. array.reduce() 예제 - 배열값 반올림 후 합산
  5. array.reduce() 예제 - 배열값 합산

 

array.reduce() 예제 - 배열 각 요소에 함수 실행 후 단일값 반환 

 

<p id="demo"></p>


<script>

var nums = [150, 50, 25];


document.getElementById("demo").innerHTML = nums.reduce(homzzang);


function homzzang(total, value) {

  return total - value;

}

</script>

 

결과값: 75


PS1. 코드 동작 순서

 

  • initialValue 없으므로, (total은 첫번째 배열값부터 / currentValue은 두번째 배열값부터) 시작. 
  • 50 경우, 150 - 50 = 100 (※ 세 번째 배열값 25의 total값이 됨)
  • 25 경우, 100 - 25 = 75

 


PS2. 즉, 아래 코드와 동일 방식으로 작동.

 

<p id="demo"></p>


<script>

var nums = [50, 25];


document.getElementById("demo").innerHTML = nums.reduce(homzzang, 150);


function homzzang(total, value) {

  return total - value;

}

</script>

 

결과보기 

 

array.reduce() 정의

 

각각의 배열값에 대해 콜백함수 적용 후, 누적단일값 반환.

 


 

1.

  • 왼쪽에 있는 배열값부터 함수 적용. 단, initialValue (= 초기값) 존재 유무에 따라 적용 시작 배열값이 다름.
  • initialValue (= 초기값) 없는 경우, 인덱스 1 (= 2번째 배열값)부터 시작해 콜백함수 실행. (※ 첫 번째 인덱스는 건너 뜀.)
  • initialValue (= 초기값) 있는 경우, 인덱스 0 (= 1번째 배열값)부터 시작.
  • 빈 배열요소에 대해선 콜백함수 실행 X
  • 원래 배열을 변경 X

 

2. cf.

array.reduceRight() 메서드 - 오른쪽 배열값부터 콜백함수 적용 후, 누적 단일값 반환.

 

3.

  • ECMAScript5 (ES5: JavaScript 2009)
  • IE9 이상 주요 최신 브라우저 지원.


4. MDN reduce() 예제보기

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce

 

 

array.reduce() 구문

 

array.reduce(function(total, value, key, arr), initialValue)

 


[매개변수]

 

function(total, value, keyarr)

필수. 각각의 배열값에 대해 실행할 함수

total
필수. initialValue (= 초기값) 또는, 앞서 반환한 함수 결과값

  • initialValue 있는 경우, total은 initialValue (=초기값)부터 시작. 
  • initialValue 없는 경우, total는 첫번째 배열값부터 시작.

 

value

필수. 현재요소의 배열값

  • initialValue 있는 경우, value는 첫번째 배열값부터 시작. 
  • initialValue 없는 경우, value는 두번째 배열값부터 시작.


key

선택. 현재요소의 배열키.

  • initialValue 있으면 0부터 시작.
  • initialValue 없으면 1부터 시작.

 


arr

선택. 현재요소가 속한 배열객체

 

initialValue

선택. 초기값으로 함수에 전달된 값.

  • totalcurrentValue의 시작을 어디서부터 할지 결정. 

 

 

array.reduce() 예제 - 배열값 반올림 후 합산

 

<button onclick="homzzang()">클릭</button>


<p id="demo"></p>


<script>

var nums = [3.5, 4.3, 5.1, 6.7];


function getSum(total, num) {

  return total + Math.round(num);

}

function homzzang(item) {

  document.getElementById("demo").innerHTML = nums.reduce(getSum, 0);

}

</script>

 

결과값: 20


PS. 코드 동작 순서

 

  • 초기값 0 있으므로, 0부터 total 시작. 첫번째 배열값부터 currentValue 시작
  • 3.5 경우 : 0 + 4 (반올림값) = 4   (※ 4.3의 total 독립변수)
  • 4.3 경우 : 4 + 4 (반올림값)  = 8   (※ 5.1의 total 독립변수)
  • 5.1 경우 : 8 + 5 (반올림값) = 13 (※ 6.7의 total 독립변수)
  • 6.7 경우 : 13 + 7 (반올림값) = 20


 

array.reduce() 예제 - 배열값 합산

 

<script>

var nums = [1, 2, 3, 4];

var x = nums.reduce(sum);

function sum(a, b) {

  return a + b;

}

document.write(x);

</script>

 

결과값: 10


PS. 코드 동작 순서

 

  • 초기값 없으므로 첫번째배열값부터 total 시작, 두 번째 배열값부터 currentValue 시작.
  • 2 경우: 1 + 2 = 3 (※ 3의 a 매개변수)
  • 3 경우: 3 + 3  = 6 (※ 4의 a 매개변수)
  • 4 경우: 6 + 4 = 10 

 


방문 감사합니다. (즐겨찾기 등록: Ctrl + D)

분류 제목
Array JS - reduceRight() 메서드 - 오른쪽배열값부터 계산 (= reduceRight메서드 = 리듀스…
Array JS - reverse() 메서드 - 배열 역순 정렬 (= 배열 순서 뒤집기 = reverse메서드 = 리버…
Array JS - shift() 메서드 - 처음배열값제거 (= 첫배열값제거 = shift메서드 = 시프트메서드)
Array JS - slice() 메서드 ★ - 선택배열값 갖는 새 배열객체 반환 (= slice메서드 = 슬라이스메서…
Array JS - some() 메서드 - 일부배열값 함수충족여부 체크 (= some메서드 = 썸메서드/섬메서드) ※ …
Array JS - sort() 메서드 ★ - 배열오름차순정렬 (= 오름차순배열정렬 = 소트메서드) ※ shuffle함…
Array JS - splice() 메서드 ★ - 배열값 (제거/추가)된 원본배열 반환 (= splice메서드 = 스플…
Array JS - toString() 메서드 - 배열을 문자열타입으로 변경 (= toString메서드 = 투스트링메서…
Array JS - unshift() 메서드 - 앞에 배열값추가후, 배열개수반환 (= unshift메서드 = 언시프트메…
Array JS - valueOf() 메서드 - 객체값 반환 (= 배열값 반환 = valueOf메서드 = 밸류어브 메서…
Array JS - includes() 메서드 - 배열에 지정값 포함 여부 검사체크 (= includes메서드 = 인클…
Array JS - at() 메서드 - 지정 색인번호의 배열값 반환 (= at메서드 = 엣메서드/앳메서드)
Array JS - entries() 예제 - 객체배열반복자 반환 (= entries메서드 = 엔트리즈메서드)
Array JS - flat() 예제 - 배열 평탄화 (= flat메서드 = 플랫메서드) ※ 중첩배열(=다단계배열)의 …
Array JS - flatMap() 메서드 - 배열 매핑 후 지정함수 적용한 새 평면배열 생성 (= flatMap메서…
Array JS - Array.from() 메서드 - 객체로부터 배열 생성 (= Array.from메서드 = 어레이프럼…
Array JS - keys() 메서드 - 배열키로 구성된 배열 반환 (= keys메서드 = 키즈메서드)
2/2
목록
찾아주셔서 감사합니다. Since 2012