Я только начинаю с highland.js и потоков в узле, и я застреваю, пытаясь рассчитать min/max/mean некоторых чисел. Это то, что я до сих пор:nodejs: вычислить среднее значение с высокогорными потоками
const _ = require('highland');
const input = [
{ val: 1 },
{ val: 2 },
{ val: 3 },
];
_(input)
.reduce((acc, { val }) => {
if (typeof acc.min === 'undefined' || val < acc.min) {
acc.min = val;
}
if (typeof acc.max === 'undefined' || val > acc.max) {
acc.max = val;
}
acc.count = (acc.count || 0) + 1;
acc.sum = (acc.sum || 0) + val;
return acc;
}, {});
Если я после этого делать, скажем, toCallback
и console.log
результат я получаю {min: 1, max: 3, count: 3, sum: 6}
но я не заинтересован в счете и сумма полей, я хочу, чтобы объект как {min: 1, max: 3, mean: 2}
,
Однако, поскольку возвращение сокращения является объектом, нет ничего Нагорье может с ним справиться - я могу только потреблять его, но я хотел бы сделать среднее в горной местности.
Как я могу продолжить здесь или как мне реорганизовать код для получения этого среднего?
Не уверены, хайленд версию вы используете, но код вы вывесили выдает ошибку как «функция F не определен» , Я поменял местами. Извлеките аргументы (сначала передал {}, а затем функцию), и он начал работать. –
Я использую '3.0.0-beta.3', который действительно перевернул аргументы args для уменьшения из ветки 2.x. –