Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.02.2010, 10:29
Аватар для HelpeR
Профессор
Отправить личное сообщение для HelpeR Посмотреть профиль Найти все сообщения от HelpeR
 
Регистрация: 21.10.2008
Сообщений: 241

сортировка массива с сохранением ассоциации индексов
Здравствуйте.
Как в js можно реализовать сортировку массива с сохранением ассоциации индексов.
var fruits = [];
fruits[0] = 'banana';
fruits[1] = 'apple';

и после сортировки получить такой результат

fruits[1] = 'apple';
fruits[0] = 'banana';
Ответить с цитированием
  #2 (permalink)  
Старый 24.02.2010, 11:00
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Порядок элементов в массиве определяется индексами. Исходя из этого, вы спрашиваете чушь.

Предупреждая упоминание for-in: использование for-in для перебора элементов массива противопоказано, т.к. эта конструкция перебирает свойства массива, а не его элементы.

Если так сильно нужны изначальные индексы, сохраните их до сортировки. Например
['banana', 'apple'].map(function(fruit, index) {
    return {index: index, fruit: fruit};
}).sort(function(fruit1, fruit2) {
    return fruit1.fruit < fruit2.fruit ? -1 : fruit1.fruit > fruit2.fruit ? 1 : 0;
})


Метода map у массивов в IE нет, но его можно там добавить.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск