Javascript 如何从D3.js中的csv文件创建嵌套对象数组?
这个问题使用的数据与我之前的一个问题相同,但问题不同。我有一个csv文件,如下所示:Javascript 如何从D3.js中的csv文件创建嵌套对象数组?,javascript,csv,d3.js,Javascript,Csv,D3.js,这个问题使用的数据与我之前的一个问题相同,但问题不同。我有一个csv文件,如下所示: name,score,date Bob,93,2014 Bob,85,2015 Barry,70,2015 ... 没有两个人有相同的名字,但是一个人可以有多个条目。如何在d3.csv回调函数中创建如下所示的数组: [{name: "Bob", values: [ {score: 93, date: 2014}, {score: 85, date: 2015}]} {name: "Barry",
name,score,date
Bob,93,2014
Bob,85,2015
Barry,70,2015
...
没有两个人有相同的名字,但是一个人可以有多个条目。如何在d3.csv回调函数中创建如下所示的数组:
[{name: "Bob", values: [
{score: 93, date: 2014},
{score: 85, date: 2015}]}
{name: "Barry", values: [
{score: 70, date: 2015}]},
...
通常情况下,我可以使用普通javascript实现这一点,但是使用arrayName[objectIndex].objectPropertyName访问属性值在d3回调函数中不起作用。函数将csv数据转换为键值对。查看链接以查看控制台中的对象。要获取最小最大数据,请参阅
在您回答之前,我使用了d3.nest()。我试图获得最大分数,但在使用d3.max()时难以访问值。请参阅我的更新答案,我在d3中使用了最小最大值函数来绘制刻度。
d3.csv("data.csv", function(error, data) {
console.log(data);
var updated = d3.nest().key(function(d) {
return d.name;
}).sortKeys(d3.ascending).entries(data);
console.log(updated);
})