故障排除无法读取属性'长度'未定义的

时间:2017-11-25 09:06:42

标签: javascript csv d3.js

我的d3美国地图工作正常一段时间,我正在从我的csv数据绘制圆圈没有问题。它看起来像这样:

var url = "my_data.csv";

      d3.csv(url, function(error, rawData) {
                var data = rawData.map(function(d)
          {
            return {
                        File: d.File,
                Latitude: +d.Latitude,
                Longitude: +d.Longitude,
                Place: d.Location,
            };
          }).filter(d => projection([d.Longitude,d.Latitude]));

然而,我注意到当我试图解析数据的时间维度时,事情变得有点复杂。我的包含日期的数据解析未能引用错误:"无法读取属性'长度'未定义"。我的日期格式为1/22/2015,因此我使用了以下内容(我也尝试了%x):

var parseTime = d3.time.format("%m/%d/%Y").parse;
var formatDate = d3.time.format("%m/%d/%Y");
var url = "my_data.csv";

      d3.csv(url, function(error, rawData) {
                var data = rawData.map(function(d)
          {
            return {
                        File: d.File,
                Latitude: +d.Latitude,
                Longitude: +d.Longitude,
                Place: d.Location,
                        Due: parseTime(d.Due),
                        //Notif: parseTime(d.Notification)
            };
          }).filter(d => projection([d.Longitude,d.Latitude]));

我检查D3中有关此错误的现有文献,它似乎有两个主要原因(我至少知道):

  • 数据回调有问题,就像这样 here
  • 或者数据本身遇到了分隔符问题,就像这样 here

我之前没有(太多)问题解析过时数据,所以起初我认为它可能是上述原因中的第二个 - 数据有分隔符问题。也许逗号已被省略或有两个逗号,或者不是逗号而是有句号或分号。

我排除故障的第一步是获取我的数据集(数以千计)并删除除大约80个观察之外的所有内容,这些内容更易于管理。在查看按比例缩小的数据后,一切似乎都井然有序。为了安全起见,除了2个观察结果外,我删除了所有内容,但错误仍然存​​在。所以,看起来它毕竟不是一个分隔符问题。

问题:整个过程创建的问题多于答案,我不确定如何继续。也许还有另一个我不知道错误的原因?

作为参考,我上传了一个极简主义block我特定的未定义长度'问题。

0 个答案:

没有答案