次のようなオブジェクトの配列があります。
var a = [
{ id: 1, score: 1, isCut: false, dnf: false },
{ id: 2, score: 2, isCut: false, dnf: false },
{ id: 3, score: 3, isCut: false, dnf: false },
{ id: 4, score: 4, isCut: false, dnf: false },
{ id: 5, score: 5, isCut: true, dnf: true },
{ id: 6, score: 6, isCut: true, dnf: false },
{ id: 7, score: 7, isCut: true, dnf: false },
{ id: 8, score: 8, isCut: true, dnf: false },
{ id: 9, score: 9, isCut: true, dnf: false },
{ id: 10, score: 0, isCut: false, dnf: false },
{ id: 11, score: -1, isCut: false, dnf: false },
{ id: 12, score: -2, isCut: false, dnf: true },
{ id: 13, score: -3, isCut: false, dnf: false },
{ id: 14, score: -4, isCut: false, dnf: false },
{ id: 15, score: -5, isCut: false, dnf: false },
{ id: 16, score: 10, isCut: true, dnf: false }
];
次の基準で配列をグループ化して並べ替える必要があります。
- true の場合
dnf
、オブジェクトは一番下に移動します。すべてのdnf
オブジェクトはスコアでソートする必要があります - が true の場合
isCut
、オブジェクトは下に移動しますが、dnf
s の上に移動します。すべてのisCut
オブジェクトはスコアでソートする必要があります - 残りは でソートする必要が
score
あり、スコアが等しい場合はid