按javascript中的字母顺序排序

时间:2016-03-31 11:37:28

标签: javascript ajax

我想知道如何按字母顺序排序我的用户名列表是我的代码,但它不起作用。我重新编辑我的代码

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

                }
            },
  });
}

enter image description here

2 个答案:

答案 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); });