Reputation: 449
i would like to know how can i sort by alphabetical order my list of username here is my code but it's not working. I re)edit my code
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("[email protected]: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>')
}
},
});
}
Upvotes: 1
Views: 4664
Reputation: 68413
how can i sort by alphabetical order my list of username
Assuming this is the username array data.users
, you can sort it by name
data.users.sort(function(a,b){ return a.name.localeCompare(b.name); });
and then render them
for (i = 0; i < data.users.length; i++)
{
var user = data.users[i];
$("#mySecond").append('<option value="'+ user.id +'">'+ user .name +'</option>')
}
Upvotes: 1
Reputation: 10849
You are trying to sort a string, you actually want to sort data.users
, so you don't need to loop. Using sort
combined with String.prototype.localCompare
you can achieve what you want:
success: function (data){
var users = data.users;
users.sort(function (a, b) {
return a.name.localeCompare(b.name);
});
// users is now sorted
}
Upvotes: 3