你希望你的對象是一個數組:
var map = [
{ id: "23434", username: "mrblah" },
{ id: "1010", username: "johnskeet" },
{ id: "1220", username: "alohaguy" }
];
我們需要一個實用工具,以顯示該用戶名,所以我們可以測試我們的工作:
var displayUsernames = function(map) {
var out = [];
for (var i=0;i<map.length;i++) {
out.push((map[i].username));
}
alert(out.join(', '));
};
如果我們使用它:displayUsernames(map);
我們得到mrblah,johnskeet,alohaguy
因爲它是一個數組,所以我們可以使用.sort()
,像這樣:map.sort();
,但如果我們這樣做,我們仍然可以得到:
mrblah,johnskeet,alohaguy
...從displayUsernames(map);
因爲對象的數組不能如此就像它是一組數字或字符串一樣。
然而,如果我們通過sort()
功能的比較功能...
var myCompareFunction = function(a, b) {
return a.username.localeCompare(b.username);
};
然後將它傳遞到map.sort()
map.sort(myCompareFunction);
現在,當我們與displayUsernames(map);
再次顯示我們得到alohaguy ,johnskeet,mrblah
希望有幫助。
您的對象中不能有兩個名爲user的成員。也許你想要的是一個數組? 'var map = [{id:「23434」,username:「mrblah」},{id:「1010」,username:「johnskeet」}];' – artlung 2009-11-05 02:20:52
你需要將JSON對象轉換爲數組,然後它的和平蛋糕 – Xinus 2009-11-05 02:30:18
我們不要將JavaScript對象文字與JSON混淆。 – 2009-11-05 02:53:53