【发布时间】:2013-07-30 09:27:09
【问题描述】:
我有一个这样的对象数组:
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 }
];
我需要按以下标准对数组进行分组和排序:
- 如果
dnf为真,则对象移至底部;所有dnf-objects 都应该按分数排序 - 如果
isCut为真,则对象到底部,但在dnfs 上方;所有isCut-objects 都应该按分数排序 - rest 应按
score排序,如果分数相等,则按id
【问题讨论】:
-
Array.sort 接受比较器函数。
-
是的,但是如何实现,这是个问题。
-
stackoverflow.com/questions/4576714/…看看这个,希望对你有帮助:)
标签: javascript arrays sorting