-1

javascript で Excel の sumproduct 関数を再作成しようとしていますが、配列の合計の乗算と、条件が渡された場合の論理結果の提供の両方でどのように機能するのか正確にはわからないため、完全には作成できません。また、そのロジックを説明するための要約を探していますが、それを使用する方法しか見つけることができません。

配列乗算の結果を合計する部分を実行できますが、論理条件が渡されたときに論理結果を返す機能を含めたい

乗算のコードは次のとおりです。

var x = function(y, x) { 
 let len=y.length, sum=0; product=0;
 if(y.length==x.length) {
    for(i=0;i<len;i++)  
        {
                product=y[i]*x[i];
                sum+=product;

            }
     return sum;
   }

 else return 0;

}
4

2 に答える 2

0

関数の最初の引数としてコールバック関数を渡すことができます

const SUMPRODUCT = (callback, ar1, ar2) => {
  if(ar1.length !== ar2.length)
    throw new RangeError()

  let sum = 0
      
  for(i=0; i<ar1.length; i++){
    if(callback(ar1[i], ar2[i]))
      sum += ar1[i] * ar2[i]
  }

  return sum
}

const x = [-5, 12, -7, 0, 10]
const y = [50, 2, 120, 87, 14]

console.log(SUMPRODUCT((x, y) => x > 0, x, y))

于 2019-06-20T18:38:28.820 に答える