reduce를 이용해서 평균값 구하기

이주희·2022년 3월 22일
0

Algorithm

목록 보기
5/79

[reduce]

arr.reduce(callback[, initialValue])

  • 누적값
  • 각 원소에 대해 callboack 함수 실행, 하나의 결과 값 반환
  • 총 원소의 합을 구할 때 주로 사용
  • 반환값 = 초기값 + 모든 원소의 연산 값
  • 초기값이 없으면 default 0번째 인덱스

callboack

  • 배열의 각 요소에 대해 실행할 함수

  • 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 이하인 정수입니다.
입출력 예

arrreturn
[1,2,3,4]2.5
[5,5]5
  1. for 반복문으로 구하기
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;
}
  1. reduce로 누적값 구하기
function solution(arr) {
    const answer = arr.reduce((acc,cur)=>{
        return acc + cur;
        },0)
    return answer / arr.length
}
profile
🍓e-juhee.tistory.com 👈🏻 이사중

0개의 댓글