-
"Chunking" pochodzi z twojego kodu:parametr value funkcji zmniejszania może zawierać albo
{time:<timestamp>,value:<value>}
emitowane z funkcji mapy lub{time:[<timestamps>],value:[<values]}
zwrócone z poprzedniego wywołania funkcji Reduce. -
Nie wiem, czy zdarzy się to w praktyce, ale może się zdarzyć w teorii.
-
Po prostu spraw, aby funkcja mapy emitowała ten sam rodzaj obiektów, które zwraca funkcja redukcji, tj.
emit(<id>, {time: [ts], value: [P[1]]})
i odpowiednio zmień funkcję redukcji, np.Array.push.apply(result.time, V.time)
i podobnie dlaresult.value
.Cóż, właściwie nie rozumiem, dlaczego nie używasz tablicy par czas/wartość zamiast pary tablic, tj.
emit(<id>, { pairs: [ {time: ts, value: P[1] ] })
lubemit(<id>, { pairs: [ [ts, P[1]] ] })
w funkcji map iArray.push.apply(result.pairs, V.pairs)
w funkcji redukcji. W ten sposób nie będziesz nawet potrzebował funkcji finalize (może z wyjątkiem "rozpakowania" tablicy z par właściwość:ponieważ funkcja Reduce nie może zwrócić tablicy, musisz ją w ten sposób opakować w obiekt)