Javascript D3格式未显示预期值
xAxis在日期上有顺序刻度。dateLabelMap包含预先计算的勾号日期的标签。当我将tickValues设置为dateLabelMap的键-日期-时,tickFormat函数中的d有时是Object.keysdateLabelMap中没有的日期。这是怎么发生的?tickFormat是否完全依赖TickValue作为d值?如何修复此问题,使d的每个值都是Object.keysdateLabelMap的每个值 编辑:示例:如果我将代码更改为以下内容:Javascript D3格式未显示预期值,javascript,d3.js,Javascript,D3.js,xAxis在日期上有顺序刻度。dateLabelMap包含预先计算的勾号日期的标签。当我将tickValues设置为dateLabelMap的键-日期-时,tickFormat函数中的d有时是Object.keysdateLabelMap中没有的日期。这是怎么发生的?tickFormat是否完全依赖TickValue作为d值?如何修复此问题,使d的每个值都是Object.keysdateLabelMap的每个值 编辑:示例:如果我将代码更改为以下内容: var correctDates = []
var correctDates = [];
var extraDates = [];
xAxis
.scale(x)
.tickValues(Object.keys(dateLabelMap))
.tickFormat(function(d,i) {
if (d in dateLabelMap) {
correctDates.push(d);
return dateLabelMap[d];
}
extraDates.push(d);
return "";
});
在最后一次迭代之后,我得到:
Object.keysdateLabelMap包含:
0: "Fri Nov 01 2013 00:00:00 GMT-0400 (Eastern Daylight Time)"
1: "Sun Dec 01 2013 00:00:00 GMT-0500 (Eastern Standard Time)"
2: "Tue Dec 31 2013 00:00:00 GMT-0500 (Eastern Standard Time)"
3: "Sat Feb 01 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
4: "Fri Feb 28 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
5: "Tue Apr 01 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
6: "Wed Apr 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
7: "Fri May 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
8: "Thu Jun 26 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
9: "Tue Jul 29 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
10: "Fri Aug 29 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
11: "Wed Oct 01 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
12: "Thu Oct 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
13: "Wed Nov 26 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
14: "Mon Dec 22 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
15: "Thu Jan 29 2015 00:00:00 GMT-0500 (Eastern Standard Time)"
16: "Thu Feb 19 2015 00:00:00 GMT-0500 (Eastern Standard Time)"
0: "Sun Dec 01 2013 00:00:00 GMT-0500 (Eastern Standard Time)"
1: "Tue Dec 31 2013 00:00:00 GMT-0500 (Eastern Standard Time)"
2: "Sat Feb 01 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
3: "Fri Feb 28 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
4: "Tue Apr 01 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
5: "Wed Apr 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
6: "Fri May 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
7: "Thu Jun 26 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
8: "Tue Jul 29 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
9: "Thu Oct 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
10: "Wed Nov 26 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
11: "Mon Dec 22 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
12: "Thu Jan 29 2015 00:00:00 GMT-0500 (Eastern Standard Time)"
13: "Thu Feb 19 2015 00:00:00 GMT-0500 (Eastern Standard Time)"
0: Sat Nov 16 2013 00:00:00 GMT-0500 (Eastern Standard Time)
1: Thu Jul 09 2015 00:00:00 GMT-0400 (Eastern Daylight Time)
更正日期包括:
0: "Fri Nov 01 2013 00:00:00 GMT-0400 (Eastern Daylight Time)"
1: "Sun Dec 01 2013 00:00:00 GMT-0500 (Eastern Standard Time)"
2: "Tue Dec 31 2013 00:00:00 GMT-0500 (Eastern Standard Time)"
3: "Sat Feb 01 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
4: "Fri Feb 28 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
5: "Tue Apr 01 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
6: "Wed Apr 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
7: "Fri May 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
8: "Thu Jun 26 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
9: "Tue Jul 29 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
10: "Fri Aug 29 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
11: "Wed Oct 01 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
12: "Thu Oct 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
13: "Wed Nov 26 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
14: "Mon Dec 22 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
15: "Thu Jan 29 2015 00:00:00 GMT-0500 (Eastern Standard Time)"
16: "Thu Feb 19 2015 00:00:00 GMT-0500 (Eastern Standard Time)"
0: "Sun Dec 01 2013 00:00:00 GMT-0500 (Eastern Standard Time)"
1: "Tue Dec 31 2013 00:00:00 GMT-0500 (Eastern Standard Time)"
2: "Sat Feb 01 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
3: "Fri Feb 28 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
4: "Tue Apr 01 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
5: "Wed Apr 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
6: "Fri May 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
7: "Thu Jun 26 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
8: "Tue Jul 29 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
9: "Thu Oct 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
10: "Wed Nov 26 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
11: "Mon Dec 22 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
12: "Thu Jan 29 2015 00:00:00 GMT-0500 (Eastern Standard Time)"
13: "Thu Feb 19 2015 00:00:00 GMT-0500 (Eastern Standard Time)"
0: Sat Nov 16 2013 00:00:00 GMT-0500 (Eastern Standard Time)
1: Thu Jul 09 2015 00:00:00 GMT-0400 (Eastern Daylight Time)
延期包括:
0: "Fri Nov 01 2013 00:00:00 GMT-0400 (Eastern Daylight Time)"
1: "Sun Dec 01 2013 00:00:00 GMT-0500 (Eastern Standard Time)"
2: "Tue Dec 31 2013 00:00:00 GMT-0500 (Eastern Standard Time)"
3: "Sat Feb 01 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
4: "Fri Feb 28 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
5: "Tue Apr 01 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
6: "Wed Apr 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
7: "Fri May 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
8: "Thu Jun 26 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
9: "Tue Jul 29 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
10: "Fri Aug 29 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
11: "Wed Oct 01 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
12: "Thu Oct 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
13: "Wed Nov 26 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
14: "Mon Dec 22 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
15: "Thu Jan 29 2015 00:00:00 GMT-0500 (Eastern Standard Time)"
16: "Thu Feb 19 2015 00:00:00 GMT-0500 (Eastern Standard Time)"
0: "Sun Dec 01 2013 00:00:00 GMT-0500 (Eastern Standard Time)"
1: "Tue Dec 31 2013 00:00:00 GMT-0500 (Eastern Standard Time)"
2: "Sat Feb 01 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
3: "Fri Feb 28 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
4: "Tue Apr 01 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
5: "Wed Apr 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
6: "Fri May 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
7: "Thu Jun 26 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
8: "Tue Jul 29 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
9: "Thu Oct 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)"
10: "Wed Nov 26 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
11: "Mon Dec 22 2014 00:00:00 GMT-0500 (Eastern Standard Time)"
12: "Thu Jan 29 2015 00:00:00 GMT-0500 (Eastern Standard Time)"
13: "Thu Feb 19 2015 00:00:00 GMT-0500 (Eastern Standard Time)"
0: Sat Nov 16 2013 00:00:00 GMT-0500 (Eastern Standard Time)
1: Thu Jul 09 2015 00:00:00 GMT-0400 (Eastern Daylight Time)
correctDates不应该与Object相同。keysdateLabelMap和extraDates不存在吗?您能提供一个完整的示例来说明问题吗?您是否为每个d更改tickFormat?@Klaujesi我为每个d返回一个不同的标签,是的。JavaScript返回一个从0到11的值。一月是0,二月是1,依此类推。您有正确的数据吗?@Klaujesi无论数据是什么,我都希望correctDates与Object.keysdateLabelMap相同。这是一个错误的假设吗?若然,原因为何?