-
"Chunking" berasal dari kode Anda:parameter nilai fungsi pengurangan Anda dapat berisi
{time:<timestamp>,value:<value>}
dipancarkan dari fungsi peta Anda, atau{time:[<timestamps>],value:[<values]}
dikembalikan dari panggilan sebelumnya ke fungsi pengurangan Anda. -
Saya tidak tahu apakah itu akan terjadi dalam praktik, tetapi itu bisa terjadi secara teori.
-
Cukup minta fungsi peta Anda memancarkan jenis objek yang sama dengan yang dikembalikan oleh fungsi reduksi Anda, yaitu
emit(<id>, {time: [ts], value: [P[1]]})
, dan ubah fungsi pengurangan Anda sesuai, yaituArray.push.apply(result.time, V.time)
dan juga untukresult.value
.Yah saya sebenarnya tidak mengerti mengapa Anda tidak menggunakan array pasangan waktu/nilai, alih-alih sepasang array, yaitu
emit(<id>, { pairs: [ {time: ts, value: P[1] ] })
atauemit(<id>, { pairs: [ [ts, P[1]] ] })
dalam fungsi peta, danArray.push.apply(result.pairs, V.pairs)
dalam fungsi reduksi. Dengan begitu, Anda bahkan tidak memerlukan fungsi finalisasi (kecuali mungkin untuk "membuka" array dari pasangan property:karena fungsi reduce tidak dapat mengembalikan array, Anda harus membungkusnya seperti itu dalam sebuah objek)