【问题标题】:JavaScript "Undefined is not a function" when looping through an array of objects循环遍历对象数组时JavaScript“未定义不是函数”
【发布时间】:2014-06-11 14:43:51
【问题描述】:

我在 Angular 中使用 d3。我在控制器中初始化了一组对象:

myApp.controller('LineChartCtrl', ['$scope', function($scope){
  $scope.d3Data = [
    {date: "1-May-12", close: 98},
    {date: "30-Apr-12", close: 96},
    {date: '27-Apr-12', close: 75},
    {date: "22-Apr-12", close: 48}
  ];
}]);

在正确接收数据的 d3 指令中,我使用了函数:

data.forEach(function(d) {
  d.date = parseDate(d.date);
  d.close = +d.close;
});

解析日期(不确定第三行实际上做了什么......它将某些东西转换为 JavaScript Number 对象可能......)。但是,第二个 sn-p 返回错误:“未定义不是函数。”我是否以某种方式错误地访问了该对象的属性?

【问题讨论】:

  • 看起来parseDate 应该使用d3.date.format(...).parse 定义。你能告诉我们这个定义吗?
  • 这是我对弗拉德回答的评论......虽然他的建议一直很好。

标签: javascript arrays angularjs d3.js


【解决方案1】:

在 JS 中没有 parseDate 这样的东西。你可以试试

d.date = new Date(d.date);

【讨论】:

  • 上面已经定义了:var parseDate = d3.time.format("%d-%b-%y").parse; 这是一个 d3 的东西。
  • 哎呀什么....虽然有效。想知道为什么它没有通过parseDate 函数。谢谢!
猜你喜欢
  • 2015-10-15
  • 2021-09-06
  • 2011-08-16
  • 1970-01-01
  • 1970-01-01
  • 2019-12-16
  • 2016-09-07
  • 1970-01-01
相关资源
最近更新 更多