绘制 C3 图表时的 JSON 到数组问题

Json to array issues when drawing C3 chart

本文关键字:JSON 数组 问题 C3 绘制      更新时间:2023-09-26

我有一个这样的json:

"result": {
    "axa.com.sg": 43,
    "globaltimes.cn": 81,
    "sh.fang.com": 109,
    "m.facebook.com": 83,
    "you.ctrip.com": 60,
    "bilibili.com": 53,
    "house.163.com": 59,
    "zhidao.baidu.com": 25,
    "news.qq.com": 38,
    "house.dbw.cn": 65
  },

我写了一个 for 循环来传递给 c3 图表以绘制表格

    var top10 = data.result;
    var topTen3m = top10.threeMonths;
    ar topTen3mRes = Object.keys(topTen3m).map(function(i) { return topTen3m[i] });
    var topTen3mRes =[];
    for(var i in topTen3m)
    topTen3mRes.push(i,topTen3m[i]);

当我完成这段代码时,我意识到数组以错误的方式分裂,结果假设是 [axa:com.sg :43, sh.fang.com:83 ...等等],但它像[axa:com.sg,43,sh.fang.com,83]

我该如何纠正它?

目前还不清楚你到底想做什么。如果您想要 JSON 格式为 [axa.com.sg:43 的数组,sh.fang.com:83 ...等],请注意元素 axa.com.sg :43 将是一个字符串(如果您希望将其作为对象,请明确)。

为此,请将最后一行更改为

topTen3mRes.push(i+':'+topTen3m[i]);

请清除您想要实现的目标

var topTen3m = top10.threeMonths;
    ar topTen3mRes = Object.keys(topTen3m).map(function(i) { return topTen3m[i] });
    var topTen3mRes =[];

因为结果对象中没有名为 threeMonth 的键,并且在对其执行一些操作后正在分配一个空白数组。