正在按升序对 AJAX 响应结果进行排序

Sorting AJAX response result in ascending order

每次重新加载页面时,基金名称的排列都会出现错误。无论页面重新加载的次数如何,名称都应始终排列为 fundI fundII fund III 等。

我尝试过不同的风格,但没有任何进展。一切都显示良好,但问题是

中的失真

这是我的代码

  $(document).ready(function () {
            $.ajax({  
                type: 'GET',
                url: 'http://datarecapture.premiumpension.com:8089/api/Prices/GetAllFundNames',
                contentType: "application/json"
            }).done(function(data) {
                $.each(data.result, function(i, ele) {
                    var detail = {};
                    detail.id = ele.FUND_ID;
                    detail.name = ele.FUND_NAME;

                    $.ajax({
                        type: 'GET',
                        url: 'http://datarecapture.premiumpension.com:8089/api/Prices/GetCurrentFundPrice?fundId=' + ele.FUND_ID
                    }).done(function(data) {
                        console.log(data.result);
                        var sortedData = data.result;
                        sortedData.sort(function(a, b){return a-b});
                        //var sortedData = data.Result
                        var id = data.result.FundID;
                        detail.price = data.result.UnitPrice;
                        //sortedname = detail.name;
                        var tile = buildTile(detail);
                        $('#tile-holder').append(tile);
                    })
                })
            });


            function buildTile(detail) {
                detail.sort
                return '<ul style="list-style: none;">'
                + '<li>' + detail.name + '</li>'
                + '<li>' + detail.price + '</li>'
                + '<li><a href="#">View History</a></li>'
                + '</ul><hr>';
            }
        });

正如@Pointy 所说,最好使用 localeCompare 来排序字符串。

...done(function(data) {
  var sortedData = [];
  for (var i in data.result) sortedData.push(data.result[i]);
  sortedData.sort(function(a, b) {
    return a.name.localeCompare(b.name)
  });
  ...

您的函数似乎有错误:

        function buildTile(detail) {
            detail.sort
            return ...