Вы хотите, чтобы ваш объект будет массивом:
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);
, так как массив объектов не может быть так rted так же, как если бы это был массив чисел или строк.
Однако, если передать функции sort()
функцию сравнения ...
var myCompareFunction = function(a, b) {
return a.username.localeCompare(b.username);
};
Затем передать его в map.sort()
map.sort(myCompareFunction);
Теперь, когда мы выводим его снова displayUsernames(map);
мы получаем alohaguy , johnskeet, mrblah
Надеюсь, что это поможет.
У вас не может быть двух членов, названных пользователем в вашем объекте. Возможно, вам нужен массив? 'var map = [{id:" 23434 ", имя пользователя:" mrblah "}, {id:" 1010 ", имя пользователя:" johnskeet "}];' – artlung
вам нужно преобразовать объект JSON в массив, а затем его покойный торт – Xinus
Давайте не будем путать JavaScript-объекты с JSON. –