Сортировка результата ответа AJAX в порядке возрастания - PullRequest
1 голос
/ 23 сентября 2019

Каждый раз, когда страница перезагружается, происходит искажение в расположении названий фондов.Название всегда должно быть похожим на 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>';
            }
        });

1 Ответ

0 голосов
/ 23 сентября 2019

Как прокомментировал @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 ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...