【发布时间】:2016-12-19 06:25:15
【问题描述】:
我正在尝试为我的 javascript 对象数组编写自定义排序函数。出于测试目的,我的 arr 数组如下所示:
[{
_id: '5798afda8830efa02be8201e',
type: 'PCR',
personId: '5798ae85db45cfc0130d864a',
numberOfVotes: 1,
__v: 0
}, {
_id: '5798afad8830efa02be8201d',
type: 'PRM',
personId: '5798aedadb45cfc0130d864b',
numberOfVotes: 7,
__v: 0
}]
我想用这个函数对对象进行排序(条件是numberOfVotes):
arr.sort(function(a, b) {
if (a.numberOfVotes > b.numberOfVotes) {
return 1;
}
if (b.numberOfVotes > a.numberOfVotes) {
return -1;
} else return 0;
});
当我打印结果时,我收到了和以前一样的订单,又名5798afda8830efa02be8201e,5798afad8830efa02be8201d
我错过了什么吗?
【问题讨论】:
-
您的输入数组已按您的条件排序 (
numberOfVotes)。你预计会发生什么? -
@melpomene 我希望它降序排序。如果我用“>”替换“
-
试试
arr.sort(function (a, b) { return b.numberOfVotes - a.numberOfVotes; });。 -
@Issue429 如果你把两个符号都改成
-
@Issue429 所以显示你的实际代码。
标签: javascript arrays function sorting object