我想知道如何按字母顺序排序我的用户名列表是我的代码,但它不起作用。我重新编辑我的代码
的script.js:
function displayuser() {
$("#mySecond").empty();
var x = document.getElementById("mySelect").value;
$.ajax({
url: "https://cubber.zendesk.com/api/v2/organizations/"+x+"/users.json",
type: 'GET',
dataType: 'json',
cors: true ,
contentType:'application/json',
secure: true,
beforeSend: function (xhr) {
xhr.setRequestHeader ("Authorization", "Basic " + btoa("claire.pagniez@cubber.com:CC..11cc"));
},
success: function (data){
for (i = 0; i < data.users.length; i++) {
var username = data.users;
data.users.sort(function (a, b) {
return a.name.localeCompare(b.name);
});
var userid = data.users[i].id;
var all = data.users[i];
console.log(all);
$("#mySecond").append('<option value="'+ userid +'">'+ username +'</option>')
}
},
});
}
答案 0 :(得分:3)
您正在尝试对字符串进行排序,您实际上想要对data.users
进行排序,因此您不需要循环。使用sort
结合String.prototype.localCompare
,您可以实现您想要的目标:
success: function (data){
var users = data.users;
users.sort(function (a, b) {
return a.name.localeCompare(b.name);
});
// users is now sorted
}
答案 1 :(得分:1)
我如何按字母顺序排序我的用户名列表
假设这是用户名数组$scope.$on('destroy', function () {
// do something here
});
,您可以按名称
data.users
然后渲染它们
data.users.sort(function(a,b){ return a.name.localeCompare(b.name); });