Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сортировка массива по заглавным кириллическим буквам внутри элементов
 
 автор: АЯС   (17.01.2012 в 10:37)   письмо автору
 
 

Пример массива (предположим, это - некий список гостей):
Петина подруга
дядя Вася
сосед Сергей
дедушка Сергей

Простая сортировка списка по алфавиту (метод sort ()) даст следующее:
дедушка Сергей
дядя Вася
Петина подруга
сосед Сергей

А мне надо сортировать по именам, которые начинаются с заглавной буквы. Т. е. надо получить после сортировки следующий список:
дядя Вася
Петина подруга
дедушка Сергей
сосед Сергей
* первый Сергей должен быть выше, потому что он дедушка.

Написал скрипт, который это реализует:
<script>
var S = new Array ('Петина подруга', 'дядя Вася', 'сосед Сергей', 'дедушка Сергей');

for (var j = 0, ln = S.length; j < ln; j++)
S [j] = S [j].substr (S [j].search (/[А-Я]/)) + '=' + S [j];

S.sort ();

for (var j = 0, ln = S.length; j < ln; j++)
S [j] = S [j].substr (S [j].search (/=/) + 1);

document.write (S.join ('<br>\n'));
</script>

Но какой-то он громоздкий получается :-((

Может, кто предложит поизящнее?

  Ответить  
 
 автор: Igorek   (18.01.2012 в 12:42)   письмо автору
 
   для: АЯС   (17.01.2012 в 10:37)
 

>Но какой-то он громоздкий получается :-((

5 строчек кода для нетривиальной сортировки, имхо, очень даже нормально.
можно гораздо хуже написать =]

  Ответить  
 
 автор: Владимир55   (18.01.2012 в 13:00)   письмо автору
 
   для: АЯС   (17.01.2012 в 10:37)
 

Такой код надо не на переделку, а на выставку!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования