我正在使用 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”。
这会影响我的其余代码。
有人可以指出我哪里出了问题吗?
还有其他方法可以进行日期比较吗?
Your 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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)