我的任务是从 morris.js 转移到 chart.js,我正在尝试根据条件为 chart.js 形成数据。我有多个选择 - 来源、指标、帐户等等。我需要根据这些选择(多选)的值形成数据,例如:
<select id="metric" class="form-control" id="type" multiple="multiple">
<option value="6" selected>first metric</option>
<option value="7">Other metric</option>
<option value="8">Third metric</option>
<option value="9">fourth metric</option>
...
<option value="0">final metric</option>
</select>
我需要一个折线图,所以我需要一个对象数组(数据集),用于每个选择的选项和颜色、指标 id(选项的值)、日期,因为日期是 Y 轴。解决这个问题的最佳方法是什么?我们已经有一个 API 可以返回如下数据:
[{"date":"2018-09-15","6":"5925.26","0":5925.26},{"date":"2018-09-16","6":"5920.33","0":5920.33},{"date":"2018-09-17","6":"3251.72","0":3251.72},{"date":"2018-09-18","6":"3375.16","0":3375.16},{"date":"2018-09-19","6":"3499.05","0":3499.05},{"rand":"0.36841474432984667"}]
- 每天的对象,而不是每个主题的对象。每天可能有空指标/缺失指标。我们通过使用 js 解析选择并使用名称分配基于值的索引并制作自定义 Y 标签和 X 标签来解决此问题。chartjs 的这种方式与我们之前使用的有很大不同。在不需要重新制作 API 的情况下完成这项工作的最佳方法是什么?我很难围绕面向对象的 javascript 进行思考,它与我与之交互的其他语言非常不同,并且创建新对象然后以 javascript 方式将它们推送到数组似乎很奇怪。有小费吗?或者在不知道选择了哪些选择并自动形成数据集而不对值/标签进行硬编码的情况下如何实现这一点的一些示例?