我检索了一组测试对象:
self.tests = response.data.tests;
组成阵列的测试对象包含title
和modifiedBy
字段。
是否有某种方法可以按标题升序对数组进行重新排序然后再修改为降序?
答案 0 :(得分:3)
您可以尝试以下
self.tests.sort(function(a, b) {
var diff = a.title.localeCompare(b.title);
return diff == 0? b.modifiedBy.localeCompare(a.modifiedBy) : diff;
});
示例强>
var arr = [
{"title" : "title1", "modifiedBy" : "david1"},
{"title" : "title1", "modifiedBy" : "david3"},
{"title" : "title2", "modifiedBy" : "david2"},
{"title" : "title1", "modifiedBy" : "david2"},
{"title" : "title2", "modifiedBy" : "david1"}
]
arr.sort(function(a, b) {
var diff = a.title.localeCompare(b.title);
return diff == 0? b.modifiedBy.localeCompare(a.modifiedBy) : diff;
});
console.dir(arr);

答案 1 :(得分:2)
如果你想用js代码对数据进行排序,@ nikhil的答案很棒。
正如我看到你的问题中有angularjs
标记,如果你想在模板中对数据进行排序,那就容易多了。以下是提示(如果您希望按相反方向排序,请将+
替换为-
):
<div ng-repeat="obj in tests | orderBy: ['+title','+modifiedBy']>
Title: {{obj.title}}
Modified By: {{obj.modifiedBy}}
</div>