我正在尝试使用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的任何成员具有多个自己的属性,或者第一个返回的不是数字,则可能无法按预期工作。

10-06 06:05