4

モデルのバックボーンコレクションがあり、特定のプロパティの個別の値を取得したい

次のようなデータをコレクションにロードした場合:

[{brand:'audi',id:'1234'},
{brand:'audi',id:'3456'},
{brand:'bmw',id:'3456'}]

コレクションから独自のブランドを取得したいと思います。結果は次のようになります。

['audi','bmw']

バックボーンとアンダースコアのAPIを見ると、これを達成するための明白なものは何も見当たりません。私の現在のアプローチは、 jslinqのようなライブラリを使用することです。

私は明らかな何かを見逃していますか、それとも誰かがjslinqよりも良い提案をしていますか?

4

1 に答える 1

17

pluckを使用してから、uniqを使用できます(例:http://jsfiddle.net/sCVyN/5/

摘む

マップのおそらく最も一般的なユースケースの便利なバージョン:プロパティ値のリストの抽出。

uniq

===オブジェクトの同等性をテストするために使用して、重複のないバージョンの配列を生成します。配列がソートされていることが事前にわかっている場合、isSortedにtrueを渡すと、はるかに高速なアルゴリズムが実行されます。変換に基づいて一意のアイテムを計算する場合は、イテレーター関数を渡します。

于 2012-07-22T09:38:32.680 に答える