gpt4 book ai didi

javascript - d3中基于日期的JSON解析

转载 作者:行者123 更新时间:2023-12-03 05:39:36 26 4
gpt4 key购买 nike

我有一个如下所示的 JSON 文件,我想以特定方式使用 d3 进行解析。在 JSON 中,P1、P2、P3 等是产品,每个产品中的日期是键,值是所售产品的数量。我希望能够过滤出给定月份的所有属于该月的日期以及每天销售的 P1、P2、P3 的数量。在 d3 中执行此操作最简单的方法是什么?我正在尝试使用 d3.json()。

 {
"P1": {
"2016-06-06": 16,
"2015-11-19": 20,
"2015-11-10": 1,
"2015-11-12": 68,
"2015-11-15": 27,
"2015-11-14": 10,
"2015-11-17": 3,
"2016-06-27": 39,
... //Hundreds of entries like this for various days of the year
}
"P2": { ... // Similar to P1}
"P3": { ... // Similar to P1, P2 }
}
}

2016 年 10 月的输出应如下所示:

 {
"2016-10-01": { "P1": 45, "P2": 44, "P3": 12 },
"2016-10-02": { "P1": 12, "P2": 12, "P3": 12 },
...
"2016-10-31": { "P1": 1, "P2":0, "P3": 4 }
}

最佳答案

这实际上并不是一个 d3 问题,而是 JavaScript 中的一个简单数据转换:

var json = {
"P1": {
"2016-06-06": 16,
"2015-11-19": 20,
"2015-11-10": 1,
"2015-11-14": 10,
"2015-11-17": 3,
"2016-06-27": 39
},
"P2": {
"2016-06-06": Math.random() * 10,
"2015-11-12": Math.random() * 10,
"2015-11-15": Math.random() * 10,
"2015-11-14": Math.random() * 10,
"2015-11-17": Math.random() * 10,
"2016-06-27": Math.random() * 10
},
"P3": {
"2016-06-06": Math.random() * 10,
"2015-11-19": Math.random() * 10,
"2015-11-10": Math.random() * 10,
"2015-11-12": Math.random() * 10,
"2015-11-15": Math.random() * 10,
"2015-11-14": Math.random() * 10
}
};

var output = {};
for (p in json){
var v = json[p];
for (d in v){
if (!output[d]){
output[d] = {};
}
output[d][p] = v[d];
}
}
console.log(output);

关于javascript - d3中基于日期的JSON解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40600089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com