我试图将一些数据嵌套在CSV文件中的D3版本5中,但是nest()
函数不断返回空数组。我是一位经验丰富的编码人员,但是对D3还是陌生的,只对ES6有一定的了解,可以从SO蜂巢的思维中获得帮助。
我已阅读API文档并查看了示例,例如http://learnjsdata.com/group_data.html 实际上,我已将该页面中的基本示例嵌入到我的代码中以进行比较。输入看起来一样,但是输出却完全不同。
console.log("D3.js Version: " + d3.version);
var expenses = [{"name":"jim","amount":34,"date":"11/12/2015"},
{"name":"carl","amount":120.11,"date":"11/12/2015"},
{"name":"jim","amount":45,"date":"12/01/2015"},
{"name":"stacy","amount":12.00,"date":"01/04/2016"},
{"name":"stacy","amount":34.10,"date":"01/04/2016"},
{"name":"stacy","amount":44.80,"date":"01/05/2016"}
];
var inline = d3.nest()
.key(function(k) { return k.date; })
.entries(expenses);
console.log(expenses);
console.log(inline);
var data = new Array();
d3.csv("smpl.csv", function(d) {
data.push({
name: d.name,
amount: +d.amount,
date: d.date
});
});
var remote = d3.nest()
.key(function(k) { return k.date; })
.entries(data);
console.log(data);
console.log(remote);
inline
和remote
的控制台输出应相同。是什么导致expenses
和data
之间的控制台输出之间的细微差别?这是问题所在吗?