我已檢索到的測試對象的數組:如何重新排列javascript數組中的對象?
self.tests = response.data.tests;
測試對象組成陣列具有title
和modifiedBy
字段。
是否有某種方式可以按升序重新排列數組,然後按降序修改?
我已檢索到的測試對象的數組:如何重新排列javascript數組中的對象?
self.tests = response.data.tests;
測試對象組成陣列具有title
和modifiedBy
字段。
是否有某種方式可以按升序重新排列數組,然後按降序修改?
你可以嘗試以下
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);
如果你想在js代碼的數據進行排序,@ Nikhil的答案是偉大的。
正如我看到你的問題中有angularjs
標籤,如果你想對模板中的數據進行排序,它會容易得多。這裏是尖端(與-
更換+
,如果在反方向想排序):
<div ng-repeat="obj in tests | orderBy: ['+title','+modifiedBy']>
Title: {{obj.title}}
Modified By: {{obj.modifiedBy}}
</div>
這就是你如何在角度:) – nikhil
@nikhil很好的技能學到了'sort'和'localeCompare ' – stanleyxu2005
[排序對象數組通過字符串的屬性值在JavaScript(的可能的複製http://stackoverflow.com/questions/1129216 /在javascript中對字符串屬性值進行排序) – vidriduch