Javascript 动态月数据集

Javascript 动态月数据集,javascript,fusioncharts,Javascript,Fusioncharts,我正在尝试为我的图表创建月份数据数组。合并每个月的所有销售和购买价值 谁能帮助我获得预期的产出,这将是非常有帮助的。我已经附上了小提琴,我试图与我的预期输出创建图表 如果可能的话,用一些对我有用的java脚本函数来指导我 您可以使用此功能: 函数转换数据(数据){ 返回{ 数据:data.reduce((会计科目,项目)=>{ 设i=acc.months.get(item.month)| 0; acc.data[i]=acc.data[i]||{ 数据:[{ 事件:“销售”, 库存:[] }

我正在尝试为我的图表创建月份数据数组。合并每个月的所有销售和购买价值

谁能帮助我获得预期的产出,这将是非常有帮助的。我已经附上了小提琴,我试图与我的预期输出创建图表

如果可能的话,用一些对我有用的java脚本函数来指导我


您可以使用此功能:

函数转换数据(数据){
返回{
数据:data.reduce((会计科目,项目)=>{
设i=acc.months.get(item.month)| 0;
acc.data[i]=acc.data[i]||{
数据:[{
事件:“销售”,
库存:[]
}, {
事件:“购买”,
库存:[]
}]
};
acc.data[i].数据[0].库存.push({value:item.sales});
acc.data[i].数据[1].库存.push({value:item.purchase});
会计月数设置(项目月数,i+1);
返回acc;
},{月份:新地图,数据:[]}。数据
};
}
//输入
风险值数据=[
{
“日期”:“2017-01-03”,
“月”:“一月”,
“销售”:“200”,
“购买”:“1000”
},
{
“日期”:“2017-01-18”,
“月”:“一月”,
“销售”:“800”,
“购买”:“2500”
},
{
“日期”:“2017-01-22”,
“月”:“一月”,
“销售”:“400”,
“购买”:“2100”
},
{
“日期”:“2017-02-20”,
“月”:“二月”,
“销售”:“40”,
“购买”:“90”
},
{
“日期”:“2017-02-28”,
“月”:“二月”,
“销售”:“970”,
“购买”:“2100”
},
{
“日期”:“2017-02-29”,
“月”:“二月”,
“销售”:“3300”,
“购买”:“2900”
},
{
“日期”:“2017-03-20”,
“月”:“三月”,
“销售”:“600”,
“购买”:“900”
}
];
//转化
var结果=转换数据(数据);
//输出
控制台日志(结果)

.as console wrapper{max height:100%!important;top:0;}
令人困惑:您的数据分布在1月、2月和3月,但您的图表分布在Q1、Q2和Q3。这是故意的吗?@trincot对不起我的错误,我刚刚发布了部分图表数据。。更新了我的小提琴。从mainData对象获取预期输出的任何方法
var mainData = [
  {
    "date": "2017-01-03",
    "month": "JAN",
    "sales": "200",
    "purchase": "1000"
  },
  {
    "date": "2017-01-18",
    "month": "JAN",
    "sales": "800",
    "purchase": "2500"
  },
  {
    "date": "2017-01-22",
    "month": "JAN",
    "sales": "400",
    "purchase": "2100"
  },
  {
    "date": "2017-02-20",
    "month": "FEB",
    "sales": "40",
    "purchase": "90"
  },
  {
    "date": "2017-02-28",
    "month": "FEB",
    "sales": "970",
    "purchase": "2100"
  },
  {
    "date": "2017-02-29",
    "month": "FEB",
    "sales": "3300",
    "purchase": "2900"
  },
  {
    "date": "2017-03-20",
    "month": "MAR",
    "sales": "600",
    "purchase": "900"
  }
]


// Expected Output - how can I achieve this

{
  "data": [
    {
      "data": [
        {
          "event": "sales",
          "inventory": [
            {
              "value": "200"   //Jan
            },
            {
              "value": "40"   //Feb
            },
            {
              "value": "600"  //Mar
            }
          ]
        },
        {
          "event": "purchase",
          "inventory": [
            {
              "value": "1000"
            },
            {
              "value": "90"
            },
            {
              "value": "900"
            }
          ]
        }
      ]
    },
    {
      "data": [
        {
          "event": "sales",
          "inventory": [
            {
              "value": "800"
            },
            {
              "value": "970"
            }
          ]
        },
        {
          "event": "purchase",
          "inventory": [
            {
              "value": "2500"
            },
            {
              "value": "2100"
            }
          ]
        }
      ]
    },
    {
      "data": [
        {
          "event": "sales",
          "inventory": [
            {
              "value": "400"
            },
            {
              "value": "3300"
            }
          ]
        },
        {
          "event": "purchase",
          "inventory": [
            {
              "value": "2100"
            },
            {
              "value": "2900"
            }
          ]
        }
      ]
    }
  ]
}