xenurs
xenurs

Reputation: 449

Sort by alphabetical order in javascript

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>')

                }
            },
  });
}

enter image description here

Upvotes: 1

Views: 4664

Answers (2)

gurvinder372
gurvinder372

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

axelduch
axelduch

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

Related Questions