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>