Object 如何将日历视图代码从D3V3更改为v5?

Object 如何将日历视图代码从D3V3更改为v5?,object,d3.js,calendarview,Object,D3.js,Calendarview,当我想将d3中的日历视图代码()从v3更改为v5时,我遇到了问题 我更改了代码中的一些部分,如d3.timeFormat、d3.scaleLinear,但也有一些缺失点 在版本3中,我无法更改为v5代码的代码如下所示: var data = d3.nest() .key(function(d) { return d.Date; }) .rollup(function(d) { return Math.sqrt(d[0].Comparison_Type / Comparison_Typ

当我想将d3中的日历视图代码()从v3更改为v5时,我遇到了问题

我更改了代码中的一些部分,如d3.timeFormat、d3.scaleLinear,但也有一些缺失点

在版本3中,我无法更改为v5代码的代码如下所示:

 var data = d3.nest()
  .key(function(d) { return d.Date; })
  .rollup(function(d) { return  Math.sqrt(d[0].Comparison_Type / Comparison_Type_Max); })
  .entries(calenderData);

console.log(data);
在我的控制台上似乎如下所示:

但在V3中,它应该看起来像对象,V3代码如下:

 var data = d3.nest()
  .key(function(d) { return d.Date; })
  .rollup(function(d) { return  Math.sqrt(d[0].Comparison_Type / Comparison_Type_Max); })
  .map(calenderData);
它似乎在v3中运行:


如何将v3代码更改为使用对象获取数据?

使用以下简单例程转换数据:

const objData = data.reduce((obj, {key, value}) => ({...obj, [key]: value}), {});

使用V5而不是V6有什么特别的原因吗?您好,谢谢您的回复。我将在其他V5JS代码上使用日历视图可视化。但是可以使用V6而不是v3。您好,我尝试了您的代码,但出现了一个错误,正如您所说,您可以在下面看到我的编辑代码,我应该在哪里更改?谢谢你看到我对你的回答的评论。另外,请注意,通常的StackOverflow做法是用评论回复答案,而不是发布其他答案-这很混乱。希望它有帮助:)嗨,谢谢你的建议:)我编辑了我的代码,但现在我的控制台上似乎没有定义对象。var objData=calenderData.reduce((obj,{key,value})=>({…obj,[key]:value}),{});您在控制台中看到了什么?“对象未定义:未定义的proto:Object”我只看到这个未定义的对象。顺便说一下,我不知道如何在注释行中插入图像,以便将其粘贴到控制台输出。