你希望你的对象是一个数组:
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