【发布时间】:2016-07-11 09:01:30
【问题描述】:
所以我试图将 json 数据分配给 d3 中的数组变量。
这是我的 json:
[
{
"Impressions": "273909",
"Clicks": "648",
"CPM": 4.6388278388278,
"Cost": 1266.4,
"CPC": 1.9543209876543,
"Campaign": "Campaign 1"
},
{
"Impressions": "974408",
"Clicks": "14571",
"CPM": 4.0175975359343,
"Cost": 3913.14,
"CPC": 0.26855672225654,
"Campaign": "Campaign 2"
},
{
"Impressions": "76751",
"Clicks": "5022",
"CPM": 8.4675,
"Cost": 643.53,
"CPC": 0.1281421744325,
"Campaign": "Campaign 3"
},
这是我加载 json 数据集的代码:
d3.json("DS003a_Adwords_AdPerformance_modified.json", function(error, data) {
var topData = data.sort(function(a, b){
return d3.descending(+a.cost, +b.cost);
}).slice(0,10);
topData.forEach(function (d) {
d.CampaignName = d.Campaign;
d.cost = d.Cost;
});
var cost = d3.nest()
.key(function(d) {return d.Cost;})
.entries(data); //fail
var p = d3.select("body").selectAll("p")
.data(topData)
.enter()
.append("p")
.text(function(d,i){
return (i+1) + ". " + d.CampaignName + " cost = " + cost[i];
});
我基本上想将“Cost”的值保存到数组变量var cost。
但是当我尝试我的代码时,结果如下:
我该怎么办?
谢谢,感谢您的帮助:)
【问题讨论】:
-
您应该将代码作为文本提供给我们,而不是屏幕截图。
-
已编辑,谢谢。
-
cost[n]是一个对象。写一个console.log(cost[n])并显示它的所有值。然后你必须像这样访问它:cost[n].VALUE或cost[n]['VALUE']。 -
我想说的是,我找不到您使用 Nest 的充分理由,因为该活动是独一无二的,而且成本也是独一无二的。是出于某种目的吗?如果您不嵌套,那么它是一个简单的球类游戏,这就是工作小提琴。 plnkr.co/edit/492ZwYhFPnLRxn0sniNl?p=preview
-
不,它没有 d3.nest 用于分组。
标签: javascript arrays json d3.js data-visualization