我正在尝试为我的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

我想念什么吗?

最佳答案

如果要按投票的降序排序:



var arr = [{_id: '5798afda8830efa02be8201e',type: 'PCR',personId: '5798ae85db45cfc0130d864a',numberOfVotes: 1,__v: 0}, {_id: '5798afad8830efa02be8201d',type: 'PRM',personId: '5798aedadb45cfc0130d864b',numberOfVotes: 7,__v: 0}];

arr.sort(function(a, b) {
  return b.numberOfVotes - a.numberOfVotes;
});

console.log(arr);

关于javascript - JavaScript中的自定义排序功能不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38914570/

10-11 12:14