gpt4 book ai didi

javascript - Javascript (D3) - 日期比较返回 NaN

转载 作者:行者123 更新时间:2023-11-29 21:03:44 25 4
gpt4 key购买 nike

我正在使用 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);
}

当我打印“min”变量时,它打印了“NaN”。

这会影响我的其余代码。

有人能指出我哪里做错了吗?还有其他方法可以进行日期比较吗?

最佳答案

您的date 值是字符串。你必须解析它们:

var parse = d3.timeParse("%Y.%m.%d");

之后,您可以使用 d3.min 检索最小值,使用 d3.max 检索最大值,或者使用 d3.extent 检索两者>.

这是演示:

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 }];

var parse = d3.timeParse("%Y.%m.%d");

var extent = d3.extent(data.map(function(d){ return parse(d.date)}))

console.log("Minimum: " + extent[0])
console.log("Maximum: " + extent[1])
<script src="https://d3js.org/d3.v4.min.js"></script>

关于javascript - Javascript (D3) - 日期比较返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45206270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com