所以我有一组看起来像这样的用户:
[{
userName: 'Jim',
roles: ['Member']
}, {
userName: 'Adam',
roles: ['Administrator']
}, {
userName: 'Suzy',
roles: ['SuperUser']
}, {
userName: 'Greg',
roles: ['SuperUser']
}, {
userName: 'Ady',
roles: ['Administrator']
}, {
userName: 'Jeremy',
roles: ['Administrator']
}]
我想按 Angular 色对这个数组进行排序。 我尝试这样做:
items.sort(function (a, b) {
var aValue = a.roles[0];
var bValue = b.roles[0];
if (aValue < bValue) return -1;
if (aValue > bValue) return -1;
return 0;
});
但它没有达到我的预期。有谁知道如何解决这个问题吗?
最佳答案
您可以使用localeCompare
sort()
中字符串比较的方法。
var data = [{"userName":"Jim","roles":["Member"]},{"userName":"Adam","roles":["Administrator"]},{"userName":"Suzy","roles":["SuperUser"]},{"userName":"Greg","roles":["SuperUser"]},{"userName":"Ady","roles":["Administrator"]},{"userName":"Jeremy","roles":["Administrator"]}]
data.sort(function(a, b) {
return a.roles[0].localeCompare(b.roles[0])
})
console.log(data)
关于Javascript 对属性数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44441940/