次のようなオブジェクトの配列であるデータがあります。
var cars = [ {"year": 2003, "make": "Toyota", "model": "Tercel"}
, {"year": 2009, "make": "Toyota", "model": "Tercel"}
, {"year": 1999, "make": "Honda", "model": "Civic"}
, {"year": 2002, "make": "Honda", "model": "Civic"}
, {"year": 2004, "make": "Honda", "model": "Civic"}
, {"year": 2007, "make": "Honda", "model": "Accord"}
...
]
選択した配列が次のようになるように、各メーカーとモデルの最新のものだけを取り出したいと思います。
var selectedCars = [ {"year": 2009, "make": "Toyota", "model": "Tercel"}
, {"year": 2004, "make": "Honda", "model": "Civic"}
, {"year": 2007, "make": "Honda", "model": "Accord"}
]
たとえば、次のようにフィルタリングできることを知っています。
var selectedCars = _.max(cars, function(d) { return d.year; })
しかし、それは配列全体から単一のオブジェクトを返します。また、メーカーとモデルのリストをループして、最大の年だけを選択してみましたが、うまくいきません。
selectedCars
別のオプションは、make と model をキーとして d3.nest() のようなものを介してデータをネストすることですが、その後、目標に戻る方法がわかりません。
ありがとう!