gpt4 book ai didi

javascript - 使用 JavaScript 对 JSON 文件或至少一个下拉列表进行排序的替代方法?

转载 作者:行者123 更新时间:2023-11-28 19:47:43 24 4
gpt4 key购买 nike

除了下面的代码之外,还有其他方法可以对 JSON 文件或至少一个下拉列表进行排序吗?

json.sort(function(a, b){
return a.id - b.id;
});

原因是对包含世界上所有国家/地区的 JSON 文件进行排序需要很长时间。这是我的代码:

parseJSONFile("json/Country.json", function(data) {
data.sort(sortCountryName);
localStorage.setItem("country", JSON.stringify(data));
});

// Function for sorting Countries
function sortCountryName(a,b){
return a.spanish.toLowerCase() > b.spanish.toLowerCase() ? 1 : -1;
}

**更新:以下是 JSON 文件的一小部分:

{
"code" : "Please Select Country",
"english" : "-- Please Select Country --",
"spanish" : "-- Por favor seleccione el pa&#237s --"
},
{
"code" : "AFG",
"english" : "Afghanistan",
"spanish" : "Afganist&#225n"
},
{
"code" : "ALB",
"english" : "Albania",
"spanish" : "Albania"
},
{
"code" : "DZA",
"english" : "Algeria",
"spanish" : "Argelia"
},
{
"code" : "ASM",
"english" : "American Samoa",
"spanish" : "Samoa Americana"
},

最佳答案

如果您可以修改 JSON,那么只需按照 @undefined 的说法首先对其进行排序,以便用户下载已经排序的数组。如果不能,则预先计算排序字段,以减少计算次数:

var header = data.shift();
data.forEach(function(item) { item.sortkey = item.spanish.toLowerCase(); });
data.sort(function(a, b) {
var aa = a.sortkey;
var bb = b.sortkey;
if (aa == bb) return 0;
return (aa < bb) ? -1 : 1;
});
data.unshift(header);

此外,请确保两秒确实是排序延迟而不是加载延迟。除了在服务器端处理数据以减少内存占用之外,您对加载延迟无能为力(例如,压缩传输、 trim 为仅指定的 UI 语言...)

关于javascript - 使用 JavaScript 对 JSON 文件或至少一个下拉列表进行排序的替代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24006757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com