powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / сортинг массива 1, 2, 3, 11, а не 1, 11, 2 ..
12 сообщений из 12, страница 1 из 1
сортинг массива 1, 2, 3, 11, а не 1, 11, 2 ..
    #34027212
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть массив файлов
подхватываются по порядку 1.jpg и далее
как заставить идти после 1.jpg 2.jpg, а не 11.jpg
...
Рейтинг: 0 / 0
сортинг массива 1, 2, 3, 11, а не 1, 11, 2 ..
    #34027215
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JS
...
Рейтинг: 0 / 0
сортинг массива 1, 2, 3, 11, а не 1, 11, 2 ..
    #34027290
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<script>
function compareNumbers ( a, b ) 
{
    return a - b;
}

myArray = new Array ( "1", "3", "2", "11" );
myArray.sort(compareNumbers);

alert( myArray );
</script>
...
Рейтинг: 0 / 0
сортинг массива 1, 2, 3, 11, а не 1, 11, 2 ..
    #34028776
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, спасибо, Николай, я уже более-менее допетрил до этого решения 8)

у меня на самом деле более хитрая проблема
названия файлов содержат буквы
например: k11.jpg, k5.jpg, k1.jpg
и вот их-то и надо отсортировать по порядку

я пока думаю так:

1. сначала взять поштучно каждое имя (циклом)
2. проверить на длину (length)
3. обрезать в зависимости от длины до цифр (substr)
4. затем конвертнуть эти получившиеся строки в реальные цифры (как?)
5. затем добавить еще одно измерение массиву (как?) в виде этих цифр
6. затем отсортировать массив по этому измерению (как?)

фуф
как-то длинно выходит :)
...
Рейтинг: 0 / 0
сортинг массива 1, 2, 3, 11, а не 1, 11, 2 ..
    #34028940
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
цифири можно регуляркой вытаскивать типа /(\D+)(\d+).jpg/
...
Рейтинг: 0 / 0
сортинг массива 1, 2, 3, 11, а не 1, 11, 2 ..
    #34028984
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2maXmo

не понял
это как?
...
Рейтинг: 0 / 0
сортинг массива 1, 2, 3, 11, а не 1, 11, 2 ..
    #34028992
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читай про RegExp
...
Рейтинг: 0 / 0
сортинг массива 1, 2, 3, 11, а не 1, 11, 2 ..
    #34028995
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок
...
Рейтинг: 0 / 0
сортинг массива 1, 2, 3, 11, а не 1, 11, 2 ..
    #34029019
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя если только одна буковка спереди, можно попробовать parseInt(fileName.substr(1))
...
Рейтинг: 0 / 0
сортинг массива 1, 2, 3, 11, а не 1, 11, 2 ..
    #34029050
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoхотя если только одна буковка спереди, можно попробовать parseInt(fileName.substr(1))
тоже так думаю
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<script>
function compareNumbers ( a, b ) 
{
    return a.substr( 1 ) - b.substr( 1 );
}

myArray = new Array ( "k1", "k3", "k2", "k11" );
myArray.sort(compareNumbers);

alert( myArray );
</script>
...
Рейтинг: 0 / 0
сортинг массива 1, 2, 3, 11, а не 1, 11, 2 ..
    #34029080
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ух ты, попробую, спасибо
...
Рейтинг: 0 / 0
сортинг массива 1, 2, 3, 11, а не 1, 11, 2 ..
    #34029175
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только если строки "k12.jpg", "k1.jpg", придётся вызывать parseInt в явном виде.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / сортинг массива 1, 2, 3, 11, а не 1, 11, 2 ..
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]