Java



           

Сортировка таблицы средствами JavaScript - часть 7


1 function allocator( arg ) { 2 3 if( flag == arg ) { 4 if( sorted == "up" ) { 5 createTable( 0, "<", txt.length, "++" ); 6 sorted = "down"; 7 } else { 8 createTable( txt.length - 1, ">=", 0, "--" ); 9 sorted = "up"; 10 } 11 return; 12 } 13 14 quickSort( 0, txt.length - 1, arg ); 15 createTable( 0, "<", txt.length, "++" ); 16 flag = arg; 17 }

Зачем сортировать повторно, если сортировка уже проводилась, а пользователь желает видеть то же самое, но в обратном порядке? Достаточно вывести значения массива в обратном порядке. Эта функция вызывает функцию сортировки только в том случае, если пользователь желает отсортировать по другому критерию. Для этого введены глобальные переменные - flag и sorted. Для лучшего понимая работы функции createTable рекомендую подробно разобраться в аргументах вызова этой функции внутри функции allocator. Достаточно хорошо можно понять суть работы, если использовать какой-нибудь отладчик, например, Microsoft Visual Inter Dev.

На этом считаю статью законченной. Если вы следили внимательно за создаваемым кодом, у вас должна получиться приблизительно такая страница:

<html> <head> <title>Сортировка таблицы средствами JavaScript</title> <meta http-equiv="Content-type" content="text/html; charset=Windows-1251"> <script language="JavaScript" type="text/javascript"> var txt = []; var flag; var sorted;

function upCs( str, param ) { var tmpStr = str.substring( 0, 1 ).toUpperCase() + str.substring( 1 ); if( !param ) return tmpStr; var separator = tmpStr.indexOf( param ); var retStr = tmpStr; if( separator != -1 ) retStr = tmpStr.substring( 0, separator );

while( separator != -1 ) { tmpStr = tmpStr.substr( separator + 1, 1 ).toUpperCase() + tmpStr.substring( separator + 2 ); separator = tmpStr.indexOf( param ); if( separator != -1 ) retStr += param + tmpStr.substring( 0, separator ); else retStr += param + tmpStr; }




Содержание  Назад  Вперед