목차
- array.reduceRight() 예제 - 오른쪽 배열값부터 계산
- array.reduceRight() 정의
- array.reduceRight() 구문
- array.reduceRight() 예제 - 배열값 반올림 후 합산
- array.reduceRight() 예제 - 배열값 합산
array.reduceRight() 예제 - 오른쪽 배열값부터 계산
<p id="demo"></p>
<script>
var nums = [150, 50, 25];
document.getElementById("demo").innerHTML = nums.reduceRight(homzzang);
function homzzang(total, num) {
return total - num;
}
</script>
결과값: -175
PS. 코드 동작 순서
- initialValue 없으므로, total은 바로 앞 배열값인 50부터 시작.
- 25 경우, 50 - 25 = 25
- 50 경우, 25 - 50 = -25
- 150 경우, -25 - 150 = - 170
array.reduceRight() 정의
오른쪽에 있는 배열값부터 콜백함수 적용 후, 누적단일값 반환.
1.
- 오른쪽에 있는 배열값부터 함수 적용. 단, initialValue (= 초기값) 존재 유무에 따라 total 독립변수가 달라짐.
- initialValue (= 초기값) 없는 경우, 배열 마지막 두 번째 값이 total 독립변수 시작값임.
- initialValue (= 초기값) 있는 경우, initialValue (= 초기값)이 total 독립변수 시작값임.
- 빈 배열요소에 대해선 함수 실행 X
- 원본 배열 변경 X
2. cf.
array.reduce() 메서드 - 왼쪽 배열값부터 콜백함수 적용 후 누적단일값 반환.
3.
- ECMAScript5 (ES5: JavaScript 2009)
- IE9 이상 주요 최신 브라우저 지원.
4. MDN reduceRight() 예제보기
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight
array.reduceRight() 구문
array.reduceRight(function(total, value, key, arr), initialValue)
[매개변수]
function(total, value, key, arr)
필수. 각각의 배열값에 대해 실행할 콜백함수
total
필수. initialValue (= 초기값) 또는, 앞서 반환한 함수 결과값
- initialValue 있으면, total은 initialValue부터 시작.
- initialValue 없으면, total는 마지막 배열값부터 시작.
value
필수. 현재요소의 배열값.
- initialValue 있으면, currentValue는 마지막 배열값부터 시작.
- initialValue 없으면, currentValue는 마지막 두번째 배열값부터 시작.
key
선택. 현재요소의 배열키.
arr
선택. 현재요소가 속한 배열객체
initialValue
선택. 초기값으로 함수에 전달된 값.
[반환값]
콜백함수 마지막 호출 시의 누적 결과값을 반환.
array.reduceRight() 예제 - 배열값 반올림 후 합산
<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.reduceRight(getSum, 0);
}
</script>
결과값: 20
PS. 코드 동작 순서
- 초기값 0 있으므로, 첫번째 배열값부터 시작.
- 6.7 경우 : 0 + 7 (반올림값) = 7 (※ 5.1의 total 독립변수)
- 5.1 경우 : 7 + 5 (반올림값) = 12 (※ 4.3의 total 독립변수)
- 4.3 경우 : 12 + 4 (반올림값) = 16 (※ 3.5의 total 독립변수)
- 3.5 경우 : 16 + 4 (반올림값) = 20
array.reduceRight() 예제 - 배열값 합산
<script>
var nums = [1, 2, 3, 4];
var x = nums.reduceRight(sum);
function sum(total, num) {
return total + num;
}
document.write(x);
</script>
결과값: 10
PS. 코드 동작 순서
- 초기값 없으므로 total 독립변수가 length 번째 배열값인 4가 되고, currentValue 독립변수가 length-1번째 배열값인 3부터 시작.
- 3 경우: 4 + 3 = 7 (※ 2의 total 독립변수)
- 2 경우: 7 + 2 = 9 (※ 1의 total 독립변수)
- 1 경우: 9 + 1 = 10