JSON:
[
{ score: 0.648 },
{ score: 0.945 }
]
Javascript:
_.sortBy(array, function(obj){ return obj.score });
ただし、これは元の配列のコピーのみを返します。何も変わっていません。配列をスコアで降順にソートしたい。それを行う方法はありますか?
JSON:
[
{ score: 0.648 },
{ score: 0.945 }
]
Javascript:
_.sortBy(array, function(obj){ return obj.score });
ただし、これは元の配列のコピーのみを返します。何も変わっていません。配列をスコアで降順にソートしたい。それを行う方法はありますか?
降順で並べ替えたい場合は、スコアを補完します。
_.sortBy(array, function(obj) { return -obj.score; });
一般的な配列の並べ替えでは、アンダースコアの世界以外では、ネイティブ.sort()
の JavaScript Array プロトタイプを使用できます。配列の 2 つの実際の要素をパラメーターとして取り、2 つの要素間の順序関係に応じて、ゼロより小さい、等しい、または大きい数値を返す必要があります。
あなたの場合、それは次のようになります:
array.sort(function(o1, o2) {
return -(o1.score - o2.score); // or just return o2.score - o1.score if you like
}
このスキームは、ソート メカニズムによって完全な制御が可能であり、前提条件がないため、はるかに柔軟です (比較関数が一貫していること以外は、一貫していない場合、奇妙な動作が発生します)。