Javascript forEach()和reduce()不使用参数

Javascript forEach()和reduce()不使用参数,javascript,higher-order-functions,Javascript,Higher Order Functions,我有两个数组(a,b),我的任务是求出它们体积的差,也就是说,我必须将数组a的所有元素相乘,然后对数组b做同样的操作,然后减去这两个元素来求出差 我尝试将forEach()和reduce()与参数一起使用,但似乎每个数组的最后一个元素都被忽略了,我作为输出得到的是NaN 这是我的密码 function findDifference(a, b) { var args = Array.prototype.slice.call(arguments); var results = [];

我有两个数组(a,b),我的任务是求出它们体积的差,也就是说,我必须将数组a的所有元素相乘,然后对数组b做同样的操作,然后减去这两个元素来求出差

我尝试将
forEach()
reduce()
参数一起使用,但似乎每个数组的最后一个元素都被忽略了,我作为输出得到的是
NaN

这是我的密码

  function findDifference(a, b) {
  var args = Array.prototype.slice.call(arguments);
  var results = [];
  args.forEach(function(argument){
    return argument.reduce(function(a,b){
     results.push(a*b);
    });
  });
  return results;
}
这是我对
findDifference([3,2,5],[1,4,4])的输出


看起来乘法在每个数组的第二个元素处停止。有什么想法吗?

您可以将每个数组的所有乘法结果存储在
result
数组中,而不是存储在结果数组中

函数查找差异(a,b){
var args=Array.prototype.slice.call(参数);
var结果=[];
args.forEach(函数(参数){
results.push(参数.reduce(函数a,b){
返回a*b;
}));
});
返回结果;
}

log(findDifference([3,2,5],[1,4,4])
您可以将每个数组的所有乘法结果存储在
result
数组中,而不是将每个乘法存储在结果数组中

函数查找差异(a,b){
var args=Array.prototype.slice.call(参数);
var结果=[];
args.forEach(函数(参数){
results.push(参数.reduce(函数a,b){
返回a*b;
}));
});
返回结果;
}

log(findDifference([3,2,5],[1,4,4])为什么不将给定的数组相乘,然后取结果的增量

函数查找差异(a,b){
返回[a,b]
.map(a=>a.reduce((a,b)=>a*b))
.减少((a,b)=>a-b);
}

log(findDifference([3,2,5],[1,4,4])为什么不将给定的数组相乘,然后取结果的增量

函数查找差异(a,b){
返回[a,b]
.map(a=>a.reduce((a,b)=>a*b))
.减少((a,b)=>a-b);
}

log(findDifference([3,2,5],[1,4,4])请添加想要的结果。顺便说一句,
forEach
不考虑某些返回值,您想用它做什么?因此结果数组应该是[30,16],即每个数组中所有元素的乘积。从这里很容易找到差异,我只需要减去两个。你只有两个数组,为什么会有
参数
?只需
返回产品(a)-product(b)
其中
product
ary.reduce(x,y=>x*y)
@georg您可以将两个以上的数组传递给此函数,
a,b
参数在这里有误导性。@Keith:问题是
我有两个数组…
传递两个以上的数组没有任何意义-三个数字的差异到底是什么?请添加想要的结果。顺便说一句,
forEach
不考虑某些返回值,您想用它做什么?因此结果数组应该是[30,16],即每个数组中所有元素的乘积。从这里很容易找到差异,我只需要减去两个。你只有两个数组,为什么会有
参数
?只需
返回产品(a)-product(b)
其中
product
ary.reduce(x,y=>x*y)
@georg您可以将两个以上的数组传递给此函数,
a,b
参数在这里有误导性。@Keith:问题是
我有两个数组…
传递两个以上的数组没有任何意义-三个数字的区别到底是什么?
[6, NaN, 4, NaN]