這裏是我的數組:排序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中的對象屬性本質上不是有序的。 –