Сортировка массива с сохранением ключей
Добрый день.
Подскажите кому не лень. Вроде задача тривиальная, но что-то не допереть, а поиском не нашел. Требуется отсортировать массив по алфавиту с сохранением ключей. Допустим массив такой: models[79][19709] = 'Creta'; models[79][19701] = 'Coupe'; models[79][19725] = 'ix35'; Применяю сортировку по алфавиту models[79].sort(); Но ключи не сортируются, то есть после сортировки массив имеет вид: models[79][0] = 'Coupe'; models[79][1] = 'Creta'; models[79][2] = 'ix35'; а должно быть models[79][19701] = 'Coupe'; models[79][19709] = 'Creta'; models[79][19725] = 'ix35'; |
denis82,
у вас наверно обьект, а не массив |
Нет, ассоциативный массив.
|
Цитата:
|
https://learn.javascript.ru/object
Объект как ассоциативный массив, который нужно отсортировать по значению, но с сохранением ключей. |
denis82,
нет сортировки обьекта в js, попробуйте уточнить данные и задачу. |
denis82,
[19701 => 'Coupe', 19709 => 'Creta', 19725 => 'ix35'], это не ассоциативный, а индексный массив. В JS, это будет объект, метода sort() у него нет. |
Ну хорошо, а как сортировать его?
|
denis82,
превратить массив(у вас массив длиной 19725) в обьект с длиной 3 и написать функцию чтобы выдавала вам данные в том виде каком нужно. |
если в строке 3 будет обьект, то сортировка выкинет ошибку
<script> var models = {}; models[79] = []; models[79][19709] = 'Creta'; models[79][19701] = 'Coupe'; models[79][19725] = 'ix35'; models[79].sort(); alert(models[79]); </script> |
Часовой пояс GMT +3, время: 02:43. |