RosettaCodeData/Task/Dot-product/JavaScript/dot-product-2.js

11 lines
352 B
JavaScript

function dotp(x,y) {
function dotp_sum(a,b) { return a + b; }
function dotp_times(a,i) { return x[i] * y[i]; }
if (x.length != y.length)
throw "can't find dot product: arrays have different lengths";
return x.map(dotp_times).reduce(dotp_sum,0);
}
dotp([1,3,-5],[4,-2,-1]); // ==> 3
dotp([1,3,-5],[4,-2,-1,0]); // ==> exception