为了账号安全,请及时绑定邮箱和手机立即绑定

如何将我的 JSON 结构更改为 chartJS 条形图 JSON 结构?

如何将我的 JSON 结构更改为 chartJS 条形图 JSON 结构?

慕容森 2022-10-08 15:23:33
[  0: {flight: "Spicejet", range: "min", Jul 1: 2397, Jul 2: 2397, Jul 3: 2397},1: {flight: "Spicejet", range: "max", Jul 1: 3045, Jul 2: 3045, Jul 3: 3045,},2: {flight: "Spicejet", range: "med", Jul 1: 2789, Jul 2: 2789, Jul 3: 2789,},3: {flight: "Indigo", range: "min", Jul 1: 3000, Jul 2: 3000, Jul 3: 3000,},4: {flight: "Indigo", range: "max", Jul 1: 5000, Jul 2: 5000, Jul 3: 5000,},5: {flight: "Indigo", range: "med", Jul 1: 4000, Jul 2: 4000, Jul 3: 4000,},] 进入labels: ["Jul 1","Jul 2","Jul 3"],datasets: [          {            label: "SpiceJet",            data: [3045,3045,3045],          },          {            label: "airways",            data: [5000,5000,5000],          },   ]对于 chartJS reactjs(线图)。在这种情况下,chartjs 很复杂,请在此提供一些解决方案。在数据集中[{data:[仅获取范围“最大值”]}]
查看完整描述

1 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

虽然关于目标格式的预期用途的问题尚不清楚,但可以轻松实现示例的实际转换。


如果我们假设所有输入元素共享相同的数据属性(Jul *在这种情况下),我们可以从任意输入元素中提取标签。数据集可以通过映射输入数据获得。


// a filter function to determine the data properties we're interested in

let dataPropertiesFilter = (k) =>  k !== "flight" && k !== "range";


let result = {

  // this assumes the first element has all data properties set and subsequent ones share the same properties

  labels: Object.keys(input[0]).filter(dataPropertiesFilter),


  // transforms each input element into the target format

  datasets: input.map(e => {

    return {

      label: e.flight,

      data: Object.keys(e)

        .filter(dataPropertiesFilter)

        .map(v => e[v])

    };

  })

};

这是一个用于演示的代码框:https ://codesandbox.io/s/stack-overflow-q-62406854-vzxnq?file=/src/index.js


查看完整回答
反对 回复 2022-10-08
  • 1 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号