сжатые данные ответа из базы данных для диаграммы - PullRequest
0 голосов
/ 27 ноября 2018

я пытаюсь сжать данные в nodejs для диаграммы, но понятия не имею, что будет лучшим способом.Я хотел бы создать функцию, которая получает необработанные данные и сокращает общее значение на X дней, например:

Данные:

{ time: '2018-10-29', total: 8 }
{ time: '2018-10-30', total: 9 }
{ time: '2018-10-31', total: 10 }
{ time: '2018-11-1', total: 4 }
{ time: '2018-11-2', total: 21 }
{ time: '2018-11-3', total: 21 }
{ time: '2018-11-4', total: 4 }
{ time: '2018-11-5', total: 7 }
{ time: '2018-11-6', total: 14 }
{ time: '2018-11-7', total: 11 }
{ time: '2018-11-8', total: 15 }
{ time: '2018-11-9', total: 14 }
{ time: '2018-11-10', total: 23 }
{ time: '2018-11-11', total: 13 }
{ time: '2018-11-12', total: 6 }
{ time: '2018-11-13', total: 14 }
{ time: '2018-11-14', total: 17 }
{ time: '2018-11-15', total: 16 }
{ time: '2018-11-16', total: 16 }
{ time: '2018-11-17', total: 21 }
{ time: '2018-11-18', total: 6 }
{ time: '2018-11-19', total: 12 }
{ time: '2018-11-20', total: 11 }
{ time: '2018-11-21', total: 15 }
{ time: '2018-11-22', total: 15 }
{ time: '2018-11-23', total: 14 }
{ time: '2018-11-24', total: 25 }
{ time: '2018-11-25', total: 1 }

, если я хочу сжать эти данные до10 дней это будет 28/10 = Math.round (2.8), поэтому каждые 3 будут объединены и возвращены.но вопрос в том, как мне получить это в коде.

спасибо за любой совет

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете попробовать что-то вроде этого:

const getDataInBucket = (bucketIndex, data) =>  data.filter((obj, i) => i >= bucketSize*bucketIndex && i<bucketSize*(bucketIndex+1));

, а затем вы можете назвать это так:

getDataInBucket(0, data); // first 10 elements
getDataInBucket(1, data); // second 10 elements
getDataInBucket(2, data); // rest 8 elements
...