我要排序的对象数组如下所示:
var students = [
{'name': 'AAA',
'year': 'freshman',
'score': 90,},
{'name': 'ABA',
'year': 'sophomore',
'score': 100},
...
];
自定义排序功能:
function customOrder(value) {
switch(value){
case 'freshman':
return 0;
case 'sophomore':
return 1;
case 'junior':
return 2;
case 'senior':
return 3;
}
}
我正在使用Angular orderBy过滤器:
students = $filter('orderBy')(students, function(item) {
return customOrder(item.year);
};
使用上面的代码,我可以按年份对学生数组进行排序。但我想按如下方式对数组进行排序:年:DESC ,然后名称:ASC ,然后得分:DESC 。
我为此做了一个数组:
$scope.sortArray = ['name', '-score'];
我改变了这样的排序逻辑:
students = $filter('orderBy')(students, [function(item) {
return customOrder(item.year);
}, $scope.sortArray]); // I don't want to hard code here (i.e. 'name', '-score')
但它给出了一个错误。
有没有办法对学生阵列进行排序?