Javascript mongodb reduce函数返回不正确的重设

Javascript mongodb reduce函数返回不正确的重设,javascript,arrays,mongodb,Javascript,Arrays,Mongodb,我试图从map函数对values数组进行计算,但是当我对值的元素进行计算时,它们是错误的,但是当我询问数组本身时,值是正确的。以下是我的地图功能: function Map() { var tempDate = new Date(Date.parse(this.date)); var day = Date.UTC(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate()); var sensorTime = Date.UTC(

我试图从map函数对values数组进行计算,但是当我对值的元素进行计算时,它们是错误的,但是当我询问数组本身时,值是正确的。以下是我的地图功能:

function Map() {
var tempDate = new Date(Date.parse(this.date));
var day = Date.UTC(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate());
var sensorTime = Date.UTC(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate(),tempDate.getHours(), tempDate.getMinutes(), tempDate.getSeconds(), tempDate.getMilliseconds());
sensorTime = sensorTime - day;
emit(
        day,
        {time : sensorTime, 
         seq : parseInt(this.seq_no) }
         ); 


}
在reduce函数中,我按sensorTime对值数组进行排序,然后尝试从最后一个元素中减去第一个元素.seq。但是我总是得到错误的答案:-

function Reduce(key, values) {


var len = values.length;
var a = 0;
var b = len -1;


// ascending order
function SortByTime(x,y) {
return parseInt(x.time) - parseInt( y.time); 
}
values.sort(SortByTime);


return {time : 0, seq : (values[b].seq - values[0].seq)};

}
如果我只返回一个没有计算的值,那么它是正确的。我曾尝试强制输入数字,但没有任何区别。我确信我遗漏了一些明显的东西


谢谢

差异不是可交换的。不确定要计算什么?如果您可以发布数据(或显示问题的一小部分示例数据)和预期结果,这会有所帮助。您的代码假设每个键只调用一次reduce函数,这是错误的。它可以被称为零次或多次。此外,在您的案例中,每个键的计算结果应该在finalize函数中完成,请通过-。感谢看起来我无法使用map reduce做我需要做的事情,因为顺序对于我的数据非常重要,因为我需要使用序列号来考虑间隙。我仍然想知道javascript是否有一些奇怪的地方,但是我在列表中看不到任何数字组合可以返回我得到的结果。