3

2 つのプロパティの最大値を見つけるコードがありますが、これが最適な方法かどうかわかりません。私はjQueryの$.getJSON(URI, function(json){})呼び出しの中にいます。

目標は、最も長い棒の幅とまったく同じ 2 本の棒を持つ棒グラフを作成することです。

現在、最大値を見つけるには:

var max = Math.max.apply(this, $.map(json, function(d){
    return Math.max(d.bar1, d.bar2);
}));

より良い方法はありますか?

編集: 要求された json 文字列:

[
    {
        "bar1": "15",
        "bar2": "13"
    },
    {
        "bar1": "20",
        "bar2": "25"
    },
    {
        "bar1": "10",
        "bar2": "18"
    }
]

maxこれを入力として 25 に等しくなければなりません。

4

1 に答える 1

3

これは機能し、必ずしもより効率的ではありませんが、わずかに短くなります。

var max = json.reduce(function(p, d) {  // p is the current max
    return Math.max(p, d.bar1, d.bar2);
}, 0);

http://jsfiddle.net/PF8Me/1/を参照

すべての値が正であると想定していることに注意してください(したがって、に供給されるゼロの「初期値」reduce)。

Array.reduceES5 ブラウザーを使用していない場合は、shim を使用してください。

于 2012-09-27T18:27:02.223 に答える