Сортировка по строковому значению и печать в HTML - PullRequest
0 голосов
/ 20 мая 2018

Здравствуйте, я следил за многими темами здесь, но не нашел своего рабочего решения.Я создал этот скрипт, который импортирует массив JSON в мою функцию Javascript, а затем распечатывает его в таблицу HTML.Мне нужно отсортировать данные JSON по «имени».Можете ли вы исправить мой код?Большое спасибо.

РЕДАКТИРОВАТЬ --- с помощью Михая код правильный и работает

    $(function() {

    $.getJSON('./scripts/items.json', function(data) {

    function compareStrings(a, b) {
      // Assuming you want case-insensitive comparison
      a = a.toLowerCase();
      b = b.toLowerCase();
      return a.localeCompare(b);
    }

    data.birra.sort(function(a, b) {
      return compareStrings(a.name, b.name);
    })

    //console.log(birra);)

       $.each(data.birra, function(i, f) {
              var tblRow = "<tr>" + "<td>" + f.name + "</td>" + "<td>" + f.description + "</td>" + "</tr>"

               $(tblRow).appendTo("#table-birra tbody");
         });

    });

});

Часть сравнения не работает и сломал мой код ...

Я собираюсь опубликовать массив "birra" в ответ на вопрос:

    {"birra":[
  {
    "id": 1,
    "name": "Corona",
    "description": "La Corona Extra, è una birra Pale lager messicana, prodotta dal birrificio Cerveceria Modelo e, limitatamente alla produzione destinata all'esportazione nel territorio statunitense, dalla Constellation Brands",
    "country": "Messico"
  },
  {
    "id": 2,
    "name": "Birra Moretti",
    "description": "Birra Moretti è stata un'azienda specializzata nella produzione di birra. Nasce nel 1859 a Udine con il nome di Fabbrica di Birra e Ghiaccio. Fu fondata da Luigi Moretti, un imprenditore, la cui famiglia era dedita al commercio e all'ingrosso di bevande e generi alimentari, il marchio è stato acquisito dalla società olandese Heineken nel 1996.",
    "country": "Italia"
  },
  {
    "id": 3,
    "name": "Beck's",
    "description": "Beck's (ufficialmente \"Brauerei Beck & Co KG\") è un birrificio tedesco",
    "country": "Germania"
  },
  {
    "id": 4,
    "name": "Forst",
    "description": "Birra Forst (in tedesco Spezialbier-Brauerei Forst) è il maggiore produttore italiano indipendente[1] di birra. Detentore anche del marchio Menabrea.",
    "country": "Italia"
  },
  {
    "id": 5,
    "name": "Tabucchi",
    "description": "Birra italiana prodotta artigianalmente, molto maltata",
    "country": "Italia"
  }
]
}

1 Ответ

0 голосов
/ 20 мая 2018

Поскольку свойство name представляет собой строку , необходимо использовать метод localeCompare .

let data = { "birra" :[{ "id": 1, "name": "Corona", "description": "La Corona Extra, è una birra Pale lager messicana, prodotta dal birrificio Cerveceria Modelo e, limitatamente alla produzione destinata all'esportazione nel territorio statunitense, dalla Constellation Brands", "country": "Messico" }, { "id": 2, "name": "Birra Moretti", "description": "Birra Moretti è stata un'azienda specializzata nella produzione di birra. Nasce nel 1859 a Udine con il nome di Fabbrica di Birra e Ghiaccio. Fu fondata da Luigi Moretti, un imprenditore, la cui famiglia era dedita al commercio e all'ingrosso di bevande e generi alimentari, il marchio è stato acquisito dalla società olandese Heineken nel 1996.", "country": "Italia" }, { "id": 3, "name": "Beck's", "description": "Beck's (ufficialmente \"Brauerei Beck & Co KG\") è un birrificio tedesco", "country": "Germania" }, { "id": 4, "name": "Forst", "description": "Birra Forst (in tedesco Spezialbier-Brauerei Forst) è il maggiore produttore italiano indipendente[1] di birra. Detentore anche del marchio Menabrea.", "country": "Italia" }, { "id": 5, "name": "Tabucchi", "description": "Birra italiana prodotta artigianalmente, molto maltata", "country": "Italia" } ]}

function compareStrings(a, b) {
  // Assuming you want case-insensitive comparison
  a = a.toLowerCase();
  b = b.toLowerCase();
  return a.localeCompare(b);
}

data.birra.sort(function(a, b) {
  return compareStrings(a.name, b.name);
})

console.log(data.birra);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...