JavaScript(D3)-日期比较返回NaN

JavaScript(D3)-日期比较返回NaN,javascript,d3.js,Javascript,D3.js,我正在使用d3并尝试比较数组中的日期。我想得到它的最小值和最大值 以下是我的数据集 var data = [{ "date": "2016.07.19", "close": 185697.89 }, { "date": "2016.07.20", "close": 185697.89 }, { "date": "2016.07.21", "close": 186601.1 }, { "date": "2016.07.22", "close": 187273.89 }, { "date": "20

我正在使用d3并尝试比较数组中的日期。我想得到它的最小值和最大值

以下是我的数据集

var data = [{ "date": "2016.07.19", "close": 185697.89 }, { "date": "2016.07.20", "close": 185697.89 }, { "date": "2016.07.21", "close": 186601.1 }, { "date": "2016.07.22", "close": 187273.89 }, { "date": "2016.07.25", "close": 186807.74 }];
下面是我遇到问题的代码段

   max_x = 0, max_y = 0, min = 100;


  for (i = 0; i < data.length; i++) {
      max_y = Math.max(max_y, data[i].close);
      max_x = Math.max(max_x, data[i].date);
      min = Math.min(min, data[i].date);
  }
max_x=0,max_y=0,min=100;
对于(i=0;i
当我打印“min”变量时,它打印了“NaN”

这将影响我的代码的其余部分

有人能指出我哪里出错了吗?
是否有其他方法进行日期比较?

您的
日期
值是字符串。您必须解析它们:

var parse = d3.timeParse("%Y.%m.%d");
之后,您可以使用
d3.min
检索最小值,使用
d3.max
检索最大值,或者使用
d3.extent
检索两者

以下是演示:

var数据=[{“日期”:“2016.07.19”,“结束”:185697.89},{“日期”:“2016.07.20”,“结束”:185697.89},{“日期”:“2016.07.21”,“结束”:186601.1},{“日期”:“2016.07.22”,“结束”:187273.89},{“日期”:“2016.07.25”,“结束”:186807.74});
var parse=d3.timeParse(“%Y.%m.%d”);
var extent=d3.extent(data.map(函数(d){return parse(d.date)}))
console.log(“最小值:+范围[0])
console.log(“最大:“+范围[1])

您可以将属性date和close分别放入两个数组中,如dateArr[“2016.07.19”、“2016.07.20”、“2016.07.21”]、closeArr[185697.89186601.1187273.89],并按asc排序,数组中的第一项是最小值,最后一项是最大值。

您正在设置属性<代码>日期<代码>和<代码>关闭<代码>并调用属性<代码>编号<代码>和<代码>类别?抱歉。这是一个错误。我编辑了代码。现在您可以看到我测试的代码。
date
是一个字符串,不是numbermin=100,而是
date
是字符串。如何使用Math.min()??告诉我们您实际想要做什么??我已经编写了以下代码,并希望它具有如下所示的工具提示。在我的代码中,工具提示是不可见的,同时在顶部有一行额外的内容:我只回答标题和第一段中所述的问题(“我使用d3并试图比较数组中的日期。我想得到它的最小值和最大值。”)。我不知道你想在片段中做什么。请每个问题只问一个问题,并保持具体。