我已经寻找了一段时间,想要一种对 Javascript 对象进行排序的方法,如下所示:
{
method: 'artist.getInfo',
artist: 'Green Day',
format: 'json',
api_key: 'fa3af76b9396d0091c9c41ebe3c63716'
}
按名称字母顺序排序即可得到:
{
api_key: 'fa3af76b9396d0091c9c41ebe3c63716',
artist: 'Green Day',
format: 'json',
method: 'artist.getInfo'
}
我找不到任何可以执行此操作的代码。有人可以给我一些帮助吗?
评论更新:
这个答案已经过时了。在 ES6 中,对象键现在是有序的。看这个问题 https://stackoverflow.com/q/5467129/1980027 for an 最新答案 https://stackoverflow.com/a/31102605/1980027
根据定义,对象中键的顺序未定义 https://stackoverflow.com/q/5525795/1048572,因此您可能无法以面向未来的方式做到这一点。相反,您应该考虑在对象实际显示给用户时对这些键进行排序。无论如何,它内部使用的排序顺序并不重要。
按照惯例,大多数浏览器将按照添加键的顺序保留对象中键的顺序。所以,你可以这样做,但不要指望它总是有效:
function sortObject(o) {
var sorted = {},
key, a = [];
for (key in o) {
if (o.hasOwnProperty(key)) {
a.push(key);
}
}
a.sort();
for (key = 0; key < a.length; key++) {
sorted[a[key]] = o[a[key]];
}
return sorted;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)