У меня есть объект:
var Data = [{
item_id:1,
name:'John',
date:1262293200000,
votes:1
}, {
item_id:2,
name:'Nick',
date:1313784000000,
votes:2
},{
item_id:3,
name:'Paul',
date:1299186000000,
votes:-3
}]
Я хочу отсортировать его по item_id
, name
, date
и votes
. Asc и desc .Для этого я использую эту функцию:
function dynamicSort(property) {
return function (a,b) {
return (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0; }}
Array.prototype.sortBy = function(property) { return this.sort(dynamicSort(property)) }
Array.prototype.reverseBy = function(property) { return this.reverse(dynamicSort(property)) }
Сортирует и меняет направление, но только после второго вызова.Например:
videoDataList.reverseBy("user_votes")
результат будет неправильным, но если я сделаю sortBy, а затем снова reverseBy
, это будет правильной сортировкой.Также, если я позвоню reverseBy
, а затем sortBy
сортировка sortBy
будет правильной.
Можно ли исправить?