Как отсортировать имена пользователей в объекте по алфавиту?

Приветствую. Подскажите, пожалуйста, как отсортировать имена пользователей в объекте по алфавиту.
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .javascript.geshi_code {font-family:monospace;} .javascript.geshi_code .imp {font-weight: bold; color: red;} .javascript.geshi_code .kw1 {color: #000066; font-weight: bold;} .javascript.geshi_code .kw2 {color: #003366; font-weight: bold;} .javascript.geshi_code .kw3 {color: #000066;} .javascript.geshi_code .co1 {color: #006600; font-style: italic;} .javascript.geshi_code .co2 {color: #009966; font-style: italic;} .javascript.geshi_code .coMULTI {color: #006600; font-style: italic;} .javascript.geshi_code .es0 {color: #000099; font-weight: bold;} .javascript.geshi_code .br0 {color: #009900;} .javascript.geshi_code .sy0 {color: #339933;} .javascript.geshi_code .st0 {color: #3366CC;} .javascript.geshi_code .nu0 {color: #CC0000;} .javascript.geshi_code .me1 {color: #660066;} .javascript.geshi_code span.xtra { display:block; }
var data = [{first_name: "Елена", last_name: "Захарова"}, {first_name: "Дмитрий", last_name: "Захаров"}, {first_name: "Виталий", last_name: "Набережнев"}];
var first_name = [];
for(i=0; i<data.length; i++) {
  first_name[i] = data[i].first_name;
}
first_name.sort();
console.log(first_name);

Выводит имена, отсортированные по алфавиту. Но мне нужно получить имя и фамилию пользователя. Как поступить?

1 ответов


Вопрос решен. Подсказал один человек.

VK.api('users.get', {'uids':''+y+''},function(data) {

  if (data.response) {
     
    var friends_data = data.response.sort(sFirstName);
    function sFirstName(a,b) {
    if(a.first_name > b.first_name)
      return 1;
    else if(a.first_name < b.first_name)
      return -1;
    else
      return 0;
    }

Все, разобрался.

first_name[i] = data[i].first_name + ' ' + data[i].last_name;
Выводит: ["Виталий Набережнев", "Дмитрий Захаров", "Елена Захарова"]
Может есть какие-то более удачные варианты. Скорость выполнения важна, так как пользователей может быть много.

Появилась новая проблема. После сортировки имена пользователей не соответствуют их id-ам. На самом деле приходит объект, содержащий имя, фамилию и id пользователя.

function(data){
var y = [];
for(var i=0; i<data.length; i++){
y[i] = data[i].friend_id;
}

VK.api('users.get', {'uids':''+y+''},function(data) {

if (data.response) {
   
  var order_by_name = [];
  for(i=0; i<data.response.length; i++) {
  order_by_name[i] = data.response[i].first_name + ' ' + data.response[i].last_name;
  }
  order_by_name.sort();
В массив y записываются id-ы юзеров. После массив y подставляется в параметр метода users.get. Этот метод возвращает имена и фамилии пользователей, соответствующие переданным в параметр id-ам. Затем я сортирую полученный имена в алфавитном порядке, но id-ы юзеров остаются в том же порядке, что были переданы в параметр. В итоге пользователи теряют свои настоящие id-ы и получают чужие. Как быть?