导致'd未定义'的错误

时间:2013-12-18 01:24:47

标签: d3.js

我的第一次调用我的重绘函数调用了一个'系列',但是如果我再次为同一个'系列'调用它,我在返回d时得到'TypeError:d is undefined'。 y在我的重绘函数的下面代码片段中输入行。

var series = menu.property("value");
var data = nested[series];
var columnHeaders = d3.keys(data[0]).filter(function(key) { return key !== "Code" && key !=="Year" && key !== "LA" && key !=="LA2";});
data.forEach(function(d) {
    var yColumn = new Array();
    var yBegin;
    var yEnd;
    d.columnDetails = columnHeaders.map(function(name) {
      for (ic in innerColumns) {
        if($.inArray(name, innerColumns[ic]) >= 0){
          if (!yColumn[ic]){
            yColumn[ic] = 0;
          }
          yBegin = yColumn[ic];
          yColumn[ic] += +d[name];
          return {name: name, column: ic, yBegin: yBegin, yEnd: +d[name] + yBegin,};
        }
      }
    });

mytotal= d3.max(d.columnDetails, function(d) {
    return d.yEnd;
});

});

我发现通过更改最后两行来测试d是否未定义如下,我的问题已经解决,但我不明白为什么错误发生在第一位。

    mytotal= d3.max(d.columnDetails, function(d) {
    if (d === undefined){return;}
    return d.yEnd;
});

检查对象显示,虽然columnDetails在第一次调用中有9个对象,但后续它有10个但是第十个未定义。我不明白为什么它应该成长。任何人都可以提出正在发生的事情吗?

0 个答案:

没有答案