你好,我已经关注了这里的许多主题,但没有找到我的工作解决方案。 我制作了这个脚本,它在我的 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/