javascript - 按字符串值排序并打印成 HTML

标签 javascript arrays json sorting

你好,我已经关注了这里的许多主题,但没有找到我的工作解决方案。 我制作了这个脚本,它在我的 Javascript 函数中导入一个 JSON 数组,然后将它打印到一个 HTML 表中。我需要按 "name"对 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"
  }
]
}

最佳答案

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

关于javascript - 按字符串值排序并打印成 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50438347/

相关文章:

javascript - 如何仅使用带有纯 JavaScript 的 js-ipfs 创建目录并将文件添加到 ipfs

javascript - 为什么我收到一个空的警报框?

c# - 查找数组中最低唯一值的索引

C++计算给定的不同数字

javascript - jQuery 窗口滚动关闭后重新打开

javascript - JavaScript 中的 Ruby 样式 block ?

在 C 中将一个 int 转换为一个 4 字节的 char 数组

Python 序列化(到 JSON)问题

json - 人工 REST API : How to generate Build Info json

jQuery - 在 JSON append 后更新 css