我正在尝试使用javascript了解的所有内容。有没有一种方法可以根据密钥对它进行排序?
var myObj =[{"2":"installation.diagnostics.status"},{"4":"installation.diagnostics.status"},{"3":"installation.diagnostics.status"}];
这是我的代码!
var result=JSON.stringify(navMenu);
eval('var obj='+result);
console.log(obj);
Object.keys(obj)
.sort()
.forEach(function (k) {
console.log(obj[k]);
});
至
var myObj =[{"2":"installation.diagnostics.status"},{"3":"installation.diagnostics.status"},{"4":"installation.diagnostics.status"}]
最佳答案
鉴于:
var myObj =[{"2":"installation.diagnostics.status"},{"4":"installation.diagnostics.status"},{"3":"installation.diagnostics.status"}];
您可以使用以下方法进行排序:
myObj.sort(function(a, b){return Object.keys(a)[0] - Object.keys(b)[0]});
您可能需要为Object.keys使用polyfill以支持较旧的浏览器。
请注意,这将对第一个返回的属性名称进行数字排序。如果myObj的任何成员具有多个自己的属性,或者第一个返回的不是数字,则可能无法按预期工作。