Javascript D3格式未显示预期值

Javascript D3格式未显示预期值,javascript,d3.js,Javascript,D3.js,xAxis在日期上有顺序刻度。dateLabelMap包含预先计算的勾号日期的标签。当我将tickValues设置为dateLabelMap的键-日期-时,tickFormat函数中的d有时是Object.keysdateLabelMap中没有的日期。这是怎么发生的?tickFormat是否完全依赖TickValue作为d值?如何修复此问题,使d的每个值都是Object.keysdateLabelMap的每个值 编辑:示例:如果我将代码更改为以下内容: var correctDates = []

xAxis在日期上有顺序刻度。dateLabelMap包含预先计算的勾号日期的标签。当我将tickValues设置为dateLabelMap的键-日期-时,tickFormat函数中的d有时是Object.keysdateLabelMap中没有的日期。这是怎么发生的?tickFormat是否完全依赖TickValue作为d值?如何修复此问题,使d的每个值都是Object.keysdateLabelMap的每个值

编辑:示例:如果我将代码更改为以下内容:

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相同。这是一个错误的假设吗?若然,原因为何?