按字符串值排序并打印到HTML

时间:2018-05-20 18:55:16

标签: javascript arrays json sorting

您好我在这里已经关注了很多主题,但没有找到我的工作解决方案。 我制作了这个脚本,在我的Javascript函数中导入JSON数组,然后将其打印到HTML表中。我需要按“名称”对JSON的数据进行排序。你能纠正我的代码吗?非常感谢。

编辑---在Mihai的帮助下,代码是正确的并且正在运行

    $(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 :(得分:1)

由于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);