作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从 api 收到一个这样的 Json:
{
"paises":{
"145":"CHINA (53)",
"150":"ESPAÑA (45)",
"68":"HOLANDA (38)",
"236":"RUMANIA (52)"
}
}
国家列表总是按字母顺序排列,但当添加到选择列表时显示无序并按 id 排序。像这样:
"68":"HOLANDA (38)",
"145":"CHINA (53)",
"150":"ESPAÑA (45)",
"236":"RUMANIA (52)"
这是一个代码:
var datos = JSON.parse(data);
$.each(datos.paises, function(id, valor) {
$("#informe-id").append($('<option>', {
value: id,
text: valor,
}));
});
在我的项目中,我在更多选择中遇到了这个问题。在其他列表中,列表大小大于 200,因此解析和缩短可能会消耗大量资源。按字母顺序填充选择保留列表的最佳方法是什么?
非常感谢
最佳答案
您可以使用Object.entries
将对象转换为数组。使用 sort
对其进行排序。
注意:orderedDatos
现在将是一个数组,而不是一个对象。您可能需要更改 $.each
var data = '{"paises": {"145": "CHINA (53)","150": "ESPAÑA (45)","68": "HOLANDA (38)","236": "RUMANIA (52)"}}';
var datos = JSON.parse(data);
var orderedDatos = Object.entries(datos.paises).sort((a, b) => a[1].localeCompare(b[1]));
$.each(orderedDatos, function(id, valor) {
console.log(valor[0], valor[1]); //Use valor[0] to get the key | Use valor[1] to get the value
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
文档:Object.entries() , sort()
关于javascript - JSON.parse in Javascript乱序选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50385936/
序 大家好呀,我是summo,这次来写写我在上班空闲(摸鱼)的时候做的一个小网站的事。去年阿里云不是推出了个活动嘛,2核2G的云服务器一年只要99块钱,懂行的人应该知道这个价格在业界已经是非常良心了
我尝试根据给定的级别顺序(BFS 顺序)构造 BST。我知道这是可能的,但我不知道我该怎么写。问题是我必须使用 BFS 序列。所以,我不能在这里使用递归,我必须迭代地编写我的程序......我发现这有
我是一名优秀的程序员,十分优秀!