javascript - 排序对象?

标签 javascript

如何按字典顺序对这个对象进行排序:

var obj = {'somekey_B' : 'itsvalue', 'somekey_A' : 'itsvalue');

所以它的输出是这样的:

for (k in obj) {
  alert(k + ' : ' + obj[k]); //first "somekey_A : itsvalue"; then "somekey_B : itsvalue"
}

最佳答案

你不能。 for..in 循环遍历属性名称的顺序是特定于实现的,无法控制。您唯一的选择是以某种方式自己组织属性,例如构建一个键数组然后对其进行排序,例如:

var keys, index;

keys = [];
for (k in obj) {
    keys.push(k);
}
keys.sort();
for (index = 0; in dex < keys.length; ++index) {
  k = keys[index];
  alert(k + ' : ' + obj[k]); //first "somekey_A : itsvalue"; then "somekey_B : itsvalue"
}

当然,您可以将它放在对象的函数中,并使用它来遍历键。或者,您可以在对象本身上保留一个排序数组,前提是您在创建新属性时保持它是最新的。

关于javascript - 排序对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2943766/

相关文章:

javascript - 如何实现像facebook一样的自动url检测? (不是如何实现url提取)

javascript - 您可以使用 Puppeteer 在提示框的文本字段中输入内容吗?

javascript - 独立的 webGL/Javascript 客户端?

javascript - 使用 javascript 检测 CSP 违规

javascript - jquery keyup、keydown 在多行表中不起作用

javascript - 查找类名的下一个单个实例

javascript - 在 Angular 1.5.3 中从不同指令将项目传递给 ng-options 时出现摘要循环错误

javascript - jQuery - 单击要隐藏的部分但在单击内部部分时忽略

javascript - 如何通过 Javascript 或 JQuery 异步获取多个 JSON

javascript - 使描述 div 在点击时动态填充