[Algorithm]reduceを使用して平均値を求める


[reduce]

arr.reduce(callback[, initialValue])
  • 積算値
  • 各要素に対してcallbock関数を実行し、結果値を返します.
  • 総要素の和を求める場合、主に
  • を用いる.
  • 戻り値=初期値+全要素の演算値
  • の初期値がない場合、default 0インデックス
  • callboack


  • アレイ内の各要素の関数

  • ≪アキュムレータ|アキュムレータ|emdw≫:アキュムレータはコールバックの戻り値を蓄積します.

  • 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の平均値を返す関数を完了します.제한사항arrは、長さが1以上100未満の配列である.
    arrの要素は10000未満または10000未満の整数です.
    I/O例
    arrreturn[1,2,3,4]2.5[5,5]5
  • 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;
    }
  • reduceで積算値
  • を求める
    function solution(arr) {
        const answer = arr.reduce((acc,cur)=>{
            return acc + cur;
            },0)
        return answer / arr.length
    }