我希望使用reduce来获取模式的总和。以下代码所做的不是将项目添加到一起,而是将它们放在一起。例如,20 + 30
应该等于50
,但它会给我02030
。
这些代码有什么问题吗?
Tracker.findById(req.params.id).populate("variations").exec(function(err, foundTracker){
if(err){
console.log(err);
}else{
const varSum = foundTracker.variations.reduce(function(sum, variation){
return sum + variation.varAmount;
}, 0);
foundTracker.varsum = varSum;
foundTracker.save(function(err, savedTracker){
跟踪器和变体是架构模型
答案 0 :(得分:2)
目前您只是concatenating strings
,这就是为什么您没有得到正确的金额。使用parseInt(),您将获得正确的结果。
改变这个:
sum + variation.varAmount
到
parseInt(sum) + parseInt(variation.varAmount);