[プログラマー/js]内


長さの等しい配列a,bの内積を求めます

文脈

let solution = (a,b) => {
    
    let answer = 0;
    for(let i=0; i<a.length; i++){
        answer += a[i]*b[i];
    }
    return answer;
}

Array.reduce()

let solution = (a,b) => {
    
    let answer = a.reduce((acc,cur,i) => acc += cur*b[i], 0);

    return answer;
}
Array.prototype.reduce
:コールバック関数を繰り返し呼び出し、
  戻り値を次のサイクルの引数として渡し、結果値を返します.
コールバック関数に渡すパラメータ
1.アキュムレータ:コールバックの戻り値
  ◆1番目の呼び出しであれば初期(0)値、2番目の呼び出しであれば1番目の呼び出しの戻り値.
2.currentValue:処理する現在の要素
3.index:処理する現在の要素のインデックス
4.array:reduceメソッドを呼び出す配列
const array = [1, 2, 3, 4]; 
const sum = array.reduce((accumulator, currentValue, index, array) 
	                      => accumulator + currentValue, 0);
console.log(sum) ;  // 10