JavaScriptでオブジェクトの配列から特定の要素の最大値を得る

結論から言うと、
- Math.max.apply(null,object.map(function(o){return o.element;}))
の1行で実現できる。

  • JavaScriptで最大値を得るには Math.max(x,y) を使う
  • パラメータは2つに限らず複数でも可。つまり、Math.max(x,y,z)とは書けるが、配列を渡すことはできない。

  • 配列の最大値を得るには apply() を使う
  • 数値を格納した配列 array に対しては、Math.max.apply(null,array)とすればOK。

  • 配列から特定の要素(の全て)を取り出すには map() を使う
  • Array.mapは「与えられた関数を配列のすべての要素に対して呼び出し、その結果からなる新しい配列を生成」する関数。

    [
      {
        "gpsDate": "2011/02/14",
        "gpsTime": "10:31:18",
        "lon": 138.73067666666665,
        "lat": 37.125295,
        "speed": 115.1,
        "direction": 91,
        "numSat": 3,
        "idx": 0
      },
      {
        "gpsDate": "2011/02/14",
        "gpsTime": "10:31:33",
        "lon": 138.736065,
        "lat": 37.124905,
        "speed": 114.4,
        "direction": 95.9,
        "numSat": 5,
        "idx": 1
      }
    ]
    

    というオブジェクトの配列 gGpsData に対し、

    gGpsData.map(function(o){return o.speed;})
    

    を実行すると、要素speedを取り出して、配列[115.1,114.4]が返される。

  • これらをまとめる
  • Math.max.apply(null,gGpsData.map(function(o){return o.speed;}))
    

    により、115.1が得られる。

参考にしたサイト:

-【Javascript】配列の値の中から、最大値、最小値を求める(配列を引数に展開する)

カテゴリー: Tips タグ: パーマリンク

JavaScriptでオブジェクトの配列から特定の要素の最大値を得る への2件のフィードバック

  1. ピンバック: GPSデータの各種情報を表示する(2) | Try Lifelog

  2. ピンバック: 【コンピューター】 JavaScriptアプリケーションのためのデザインパターン 2013年09月19日 朝刊 | aquadrops * news

コメントは停止中です。