亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將我的 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 關注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號