javascript - D3 工具提示错误 : "Cannot read property ' - 1' of undefined"

标签 javascript arrays d3.js

我正在尝试创建一个像这样的工具提示:http://bl.ocks.org/sdbernard/2e44bd82c9d048b88451/2b31b98b8f6acb8d7c6026b5eec801e2f1f61ab2

该 block 的底层代码和数据结构与我自己的类似,只是我也在做小倍数。这是我的 Plunker:http://plnkr.co/edit/BsLMhbldIYvZEVOu23aM?p=preview

当我尝试使用月份和年份(甚至仅使用年份(如原始版本所示))使 block 的工具提示适应我的可视化时,我收到错误消息:“无法读取未定义的属性'-1'”

有问题的代码似乎在这里:

              var mousex = d3.mouse(this);
              mousex = mousex[0] + 10;
              var invertedx = xScale.invert(mousex);

// This doesn't work:  //
                invertedx = invertedx.dates;   
                var selected = (d.value);
                mousedate = dates.indexOf(String(invertedx));
                pro = d.value[mousedate].y;

这也不起作用:

            invertedx = invertedx.getMonth() + invertedx.getFullYear();
            var selected = (d.value);
            for (var k = 0; k < selected.length; k++) {
                dates[k] = selected[k].x
                dates[k] = dates[k].getMonth() + dates[k].getFullYear();
            }

            mousedate = dates.indexOf(invertedx);
            pro = d.value[mousedate].y; 

这是我的骗子:http://plnkr.co/edit/BsLMhbldIYvZEVOu23aM?p=preview 我在这上面花了将近一周的时间,没有太大的进展。预先非常感谢您的帮助。

最佳答案

到目前为止我发现的是,如果您在问题区域之前执行 console.log(d) ,则没有定义 d.value 。我看到的是 d.values,它是一个数组。

另外,mousedate 最终为 -1,因为它正在查找的日期中没有索引。

我可能还没有找到完整的解决方案,但解决这个问题至少应该可以帮助您回到正轨。

关于javascript - D3 工具提示错误 : "Cannot read property ' - 1' of undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47085081/

相关文章:

javascript - 如何在 HTML 中显示来自 Gmail API 的内联图像和附件——难题的最后一部分

C 指向字符数组的指针

javascript - 设置 d3.curveBundle.beta 似乎没有效果

Javascript 求和数组,使用 d3.nest()

javascript - 使用 JavaScript 写入文本文件?

javascript - d3 鼠标悬停时绘制一次

javascript - 停止换行提交表单?

c - 数组程序的输出

php - 如何获得单词字符的所有唯一组合?

javascript - 将 d3 层次结构(d3 树)图反转到左侧以也显示下游