Помогите пожалуйста понять почему такой код выводит среднее значение = 3:
var a = Rx.Observable.range(1, 5)
.reduce((prev, curr) => {
return {
sum: prev.sum + curr,
count: prev.count + 1
};
}, { sum: 0, count: 0 })
.map(o => {
return o.sum / o.count;
})
a.subscribe(x => console.log('avg is:', x));
А такой код, выводит среднее значение = 2:
var a = Rx.Observable.range(0, 5)
.reduce((prev, curr) => {
return {
sum: prev.sum + curr,
count: prev.count + 1
};
}, { sum: 0, count: 0 })
.map(o => {
return o.sum / o.count;
})
a.subscribe(x => console.log('avg is:', x));
Как работает в нативном js оператор reduce я представляю. Но не понимаю почему во втором случае ноль в последовательности так меняет результат.