javascript - 使用 Javascript 按字母顺序对 JSON 响应进行排序

标签 javascript json sorting

服务器从查询中返回以下响应:

       { ROM: "Romania", 
         YUG: "Yugoslavia",
         PRT: "Portugal", 
         MKD: "Macedonia", 
         GRC: "Greece",
         FRA: "France", 
         ISL: "Iceland", 
         LUX: "Luxembourg", 
         HUN: "Hungary", 
         GBR: "United Kingdom", 36 more… }

我需要将它们放入已经存在的选择中,如下所示:

 $.each(result, function(key, value) { 

        $('#country')
        .append($("<option></option>")
        .attr("value",key)
        .text(value)); 

        });     

有人可以告诉我如何在将国家/地区插入 html 元素之前按值按字母顺序对它们进行排序吗?

最佳答案

您无法对对象进行排序,但可以对数组进行排序,因此您可以创建一个 HTMLOptionElement 对象数组并对其进行排序,然后将其附加到选择元素。

$('#country').append(function() {
    return $.map(result, function (key, value) {
        return new Option(key, value);
    }).sort(function (a, b) {
        return a.text.localeCompare(b.text);
    });
});

Here is a demo.

关于javascript - 使用 Javascript 按字母顺序对 JSON 响应进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29908744/

相关文章:

javascript - 串联是否会减少 HTTP2 中的 header 数量?

java - 新手 'Can you do this with Dojo/Ajax' 问题

javascript - 如何在 ReactJS 上以 JSON 格式从 API 获取数据并填充下拉列表

ruby - 使用最大行长度简洁地序列化 JSON

algorithm - 如何最快地对稀疏向量进行排序

arrays - 在数字上划分数组元素-崩溃问题

mysql - 如何对 Group by 的结果进行降序排序?

javascript - 如何在google-libphonenumber Js包中获取ISO国家代码

javascript - 如何在 Selenium 中解析变量或多值 cookie?

javascript - 如何让php/json中的按钮保持在一行?