2017-10-15 14 views
0

の配列の数に変換:私は「しかしD3私はこのようなデータセット持つオブジェクト

d3.max(data, function(d){ return d.number;}) 

var data = [{state: "CA", number: "3"},{}...]; 

私はこれを使って、データセットの最大数を取得したいが正解を得られない。これを修正する方法に関する提案はありますか?

答えて

2

現在、の文字列と比較しているため、結果が期待どおりにならない場合があります。例えば

、このデモを確認してください。

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>

関連する問題