본문 바로가기
Javascript

reduce( )/reduceRight( )

by 코딩달림 2022. 9. 27.
728x90

reduce( ) / reduceRight( )

reduce( ) 메서드는 배열의 여러개의 값을 하나의 값으로 축소하고 축소한 값을 반환합니다
reduceRight( ) 메서드는 배열의 여러개의 값을 하나의 값으로 축소하고 축소한 값을 역순으로 반환합니다


reduce( )과 reduceRight( ) 메서드

reduce( ) 메서드는 배열의 값을 하나의 값으로 축소하며, 반복문과 비슷하게 배열의 요소들을 순회하면서 반복적인 연산을 하는 메서드입니다.
하지만 콜백함수가 들어갈 때 반환하는 값이 다음 콜백 함수의 첫 번째 파라미터로 전달되는 차이점이 있습니다. 즉, 마지막 콜백 함수가 동작한 이후의 반환 값이 reduce 메서드의 return 값이 됩니다.
reduceRight( )는 동일하지만 역순으로 반환해줍니다.

  문법
arrNum1.reduce(element => element) : 배열값을 축소해 첫번째 값만 남기고 반환
arrNum2.reduce((p, c) => p + c) : 배열의 값을 전부 합산함
arrNum4.reduce((p,c) => p.concat(c)) : 배열을 결합함

const arrNum1 = [100, 200, 300, 400, 500];         
const arrReduce1 = arrNum1.reduce(element => element);

document.querySelector(".sample07_N1").innerHTML = "1";
document.querySelector(".sample07_Q1").innerHTML = "[100, 200, 300, 400, 500]";
document.querySelector(".sample07_M1").innerHTML = "arrNum1.reduce(element => element)";
document.querySelector(".sample07_P1").innerHTML = arrReduce1; 


const arrNum2 = [100, 200, 300, 400, 500];         
const arrReduce2 = arrNum2.reduce((p, c) => p + c);


document.querySelector(".sample07_N2").innerHTML = "2";
document.querySelector(".sample07_Q2").innerHTML = "[100, 200, 300, 400, 500]";
document.querySelector(".sample07_M2").innerHTML = "arrNum2.reduce((p, c) => p + c)";
document.querySelector(".sample07_P2").innerHTML = arrReduce2; 


const arrNum3 = [100, 200, 300, 400 ,500];
let sum = 0;

for( let i=0; i<arrNum3.length; i++){
    sum += arrNum3[i];
}

document.querySelector(".sample07_N3").innerHTML = "3";
document.querySelector(".sample07_Q3").innerHTML = "[100, 200, 300, 400, 500]";
document.querySelector(".sample07_M3").innerHTML = "for()";
document.querySelector(".sample07_P3").innerHTML = sum;


const arrNum4 = [[100,200], [300,400]];
const arrReduce4 = arrNum4.reduce((p,c) => p.concat(c));

document.querySelector(".sample07_N4").innerHTML = "4";
document.querySelector(".sample07_Q4").innerHTML = "[[100,200], [300,400]]";
document.querySelector(".sample07_M4").innerHTML = "arrNum4.reduce((p,c) => p.concat(c))";
document.querySelector(".sample07_P4").innerHTML = arrReduce4;


const arrNum5 = ["javascript", "react", "vue"];
const arrReduce5 = arrNum5.reduceRight((p,c) => p+c);

document.querySelector(".sample07_N5").innerHTML = "5";
document.querySelector(".sample07_Q5").innerHTML = "['javascript', 'react', 'vue']";
document.querySelector(".sample07_M5").innerHTML = "arrNum5.reduce((p,c) => p.concat(c))";
document.querySelector(".sample07_P5").innerHTML = arrReduce5;
결과보기
번호 기본값 메서드 리턴값

'Javascript' 카테고리의 다른 글

indexOf( )/lastIndexOf( )/includes( )  (0) 2022.09.27
slice( )/splice( )  (1) 2022.09.27
reverse( )/sort( )/concat( )  (2) 2022.09.27
unshift( )/shift( ) 메서드  (2) 2022.09.27
콜백 함수  (3) 2022.09.20

댓글


광고 준비중입니다.