gpt4 book ai didi

javascript - 合并 JSON 对象数组并使用 Javascript 排序

转载 作者:行者123 更新时间:2023-11-29 10:23:14 26 4
gpt4 key购买 nike

我有一个包含 12 个数组的 JSON 对象。不同地区的国家。我正在尝试将此数组合并到选择下拉菜单中。 JSON 看起来像这样:

"latinamerica": [
"Argentina",
"Bolivia",
"Brazil",
"Chile",
"Colombia",
"Ecuador",
"Paraguay",
"Peru"
],
"korea": ["South Korea"]

然后我在 JSON 中调用:

    $.getJSON('js/countries.json', function(data) {

var items = [];

items[0] = '<option value="0">Country</option>';

$.each(data['latinamerica'], function(key, val) {
items.push('<option value="'+ key +'">'+ val +'</option>');
});
});

对对象中的每个数组执行此操作。问题是我想合并所有这些数组,按字母顺序对它们进行排序,但仍然保持它们关联的区域。所以基本上我会有一个所有国家的下拉列表,HTML 看起来像:

<option value="latinamerica">Argentina</option>
<option value="europe">Austria</option>

我试过执行 concat,但后来我丢失了我的数组名称。建议? TIA。

最佳答案

您基本上需要一个不同的“模型”来生成该“ View ”:

var countries = [];
for (var region in data) {
for (var i = 0, l = data[region].length; i < l; ++i) {
countries.push({ country: data[region][i], region: region });
}
}

然后你对它进行排序:

countries.sort(function(a, b) {
if (a.country < b.country) return -1;
if (a.country > b.country) return 1;
return 0;
});

然后你使用它:

var items = [];      

items.push('<option value="0">Country</option>');
for (var i = 0, l = countries.length; i < l; ++i) {
items.push('<option value="'+ countries[i].region +'">'+ countries[i].country +'</option>');
}

(注意:所有这些代码都未经测试)。

关于javascript - 合并 JSON 对象数组并使用 Javascript 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7232328/

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