我正在尝试从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对values数组进行排序,然后尝试从最后一个element.seq中减去第一个element.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)};
}
如果我只是在没有计算的情况下返回其中一个值,那么它是正确的。我已经尝试强制输入数字,但没有任何区别。我相信我错过了一些明显的东西。
感谢