node.js - 从数据库中收缩响应数据以绘制图表
问题描述
我试图缩小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 个数据将被合并并返回。但问题是我如何让它编码。
感谢您的建议
解决方案
你可以尝试这样的事情:
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
推荐阅读
- javascript - 全局执行上下文是由函数创建的吗?
- c++ - 结构的搜索向量
- android - 如何反转蒙版?
- node.js - ReferenceError 在 node.js 中使用 mongoose 将数据保存到 mongodb
- python - 在python中连接可能存在或不存在的字典键
- javascript - 为什么我不能使用 let、const 或 var 关键字在 ES6 类中声明变量,但我可以直接声明它?
- java - 使用 android studio firebase 添加实时数据库
- javascript - 密码存储在谷歌浏览器的浏览器内存中
- php - chmod 在 Dockerfile RUN 命令中无法正常工作。在构建过程中显示正确,但似乎没有坚持
- python - Python检查字符串列表中的句子中是否存在字符串