这里是我的数组:排序JavaScript数组与非数字键
var a = [];
a["P.M.L."] = 44;
a["P.CO."] = 56;
a["M.É.D."] = 10;
我现在想所以它看起来像数组排序:
["M.É.D." : 10, "P.M.L." : 44, "P.CO." : 56]
我已经尝试了许多解决方案,并没有他们已经取得成功。我想知道你们中的一个是否有任何想法如何对数组进行排序。
这里是我的数组:排序JavaScript数组与非数字键
var a = [];
a["P.M.L."] = 44;
a["P.CO."] = 56;
a["M.É.D."] = 10;
我现在想所以它看起来像数组排序:
["M.É.D." : 10, "P.M.L." : 44, "P.CO." : 56]
我已经尝试了许多解决方案,并没有他们已经取得成功。我想知道你们中的一个是否有任何想法如何对数组进行排序。
正如评论所说,在这里你的问题不只是排序,而且你的数据结构是如何设置的。我想你会真正想要的这里是对象的数组,这看起来是这样的:
var a = [{name: "P.M.L", val: 44},
{name: "P.CO.", val: 56},
{name: "M.É.D.", val: 10}];
随着组织数据这一新的方式,你可以通过val
属性用下面的代码进行排序a
:
a.sort(function(x, y) {
return x.val - y.val;
});
从MDN website直摘自:
a.sort(function (a, b) {
if (a.name > b.name)
return 1;
if (a.name < b.name)
return -1;
// a must be equal to b
return 0;
});
但是,这真的不是一个数组,所以你必须要重组到这一个。
认为你可以做'return a.name> b.name'。 – elclanrs
简单的解决方案将是:
a.sort(function(x, y) {
return x.name - y.name;
})
你的意思是:“这是我的数组,但我真的想要一个对象”?并且对象没有顺序... – elclanrs
这不是一个数组,它是一个_object_。 JavaScript数组具有严格的数字键,但对象在动态确定时使用'[]'语法来访问属性。否则,它们将是点属性。 (在技术上你将它声明为一个数组,但是然后向它添加了额外的对象属性) –
而且,JavaScript中的对象属性本质上不是有序的。 –