arr.reduce(callback[, initialValue])
- 누적값
- 각 원소에 대해 callboack 함수 실행, 하나의 결과 값 반환
- 총 원소의 합을 구할 때 주로 사용
- 반환값 = 초기값 + 모든 원소의 연산 값
- 초기값이 없으면 default 0번째 인덱스
배열의 각 요소에 대해 실행할 함수
accumulator: 누산기는 콜백의 반환값을 누적한다.
currentValue: 처리할 현재 요소
누적 계산의 결과 값을 반환한다.
arr.reduce((누적값, 현재값)=>{
// 현재값+누적값을 리턴
},초기값)
예시
/*배열의 모든 값 합산*/
//1.
var total = [ 0, 1, 2, 3 ].reduce(
( acc, cur ) => acc + cur,
0
);
> 결과 <
6
//2.
let arr = [1,2,3,4,5,6,7,8,9]
arr.reduce((acc,cur)=>{
console.log(`누적값 : ${acc} , 현재값 : ${cur}`)
return acc+cur
},10)
> 결과 <
누적값 : 10 , 현재값 : 1
누적값 : 11 , 현재값 : 2
누적값 : 13 , 현재값 : 3
누적값 : 16 , 현재값 : 4
누적값 : 20 , 현재값 : 5
누적값 : 25 , 현재값 : 6
누적값 : 31 , 현재값 : 7
누적값 : 38 , 현재값 : 8
누적값 : 46 , 현재값 : 9
55
문제 설명
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
제한사항
arr은 길이 1 이상, 100 이하인 배열입니다.
arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
입출력 예
arr return [1,2,3,4] 2.5 [5,5] 5
function solution(arr) {
var answer = 0;
let sum =0;
for(let i=0; i<arr.length; i++){
sum += arr[i];
}
answer = sum / arr.length;
return answer;
}
function solution(arr) {
const answer = arr.reduce((acc,cur)=>{
return acc + cur;
},0)
return answer / arr.length
}