0
我有一个这样的数据集:D3转换为对象的排列编号
var data = [{state: "CA", number: "3"},{}...];
我想用它来获取数据集中的最大数量:
d3.max(data, function(d){ return d.number;})
不过我没有得到正确的答案。有关如何纠正此问题的任何建议?
我有一个这样的数据集:D3转换为对象的排列编号
var data = [{state: "CA", number: "3"},{}...];
我想用它来获取数据集中的最大数量:
d3.max(data, function(d){ return d.number;})
不过我没有得到正确的答案。有关如何纠正此问题的任何建议?
现在你正在比较字符串,结果可能不是你所期望的。
例如,检查此演示:
var data = [{
state: "CA",
number: "3"
}, {
state: "NY",
number: "5"
}, {
state: "PA",
number: "41"
}];
var max = d3.max(data, function(d) {
return d.number;
});
console.log("Max is: " + max)
<script src="https://d3js.org/d3.v4.min.js"></script>
你可能会认为,最大为41
。但是,它返回"5"
,这确实是“最高”字符串。
解决方案:转换您的字符串到数字(在这里,使用一元加运算,+
):
var data = [{
state: "CA",
number: "3"
}, {
state: "NY",
number: "5"
}, {
state: "PA",
number: "41"
}];
var max = d3.max(data, function(d) {
return +d.number;
// ^--- unary plus
});
console.log("Max is: " + max)
<script src="https://d3js.org/d3.v4.min.js"></script>