Показать сообщение отдельно
  #3 (permalink)  
Старый 26.02.2013, 09:56
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Несомненно условный оператор внутри цикла снижает производительность. Если не хочется писать две почти одинаковые функции, то я бы сделал примерно так:
if( type == 'asc' ) {
for (x = 0; x <= lenght; x ++) {
....................
} else {
for (x = lenght; x >= 0; x --) {
.................

Это некий компромисс, дублирование кода сохраняется.

Другой вариант, без дублирования:
if( type == 'asc' ) {
var start = 0, end =length, step = 1;
} else {
start = length, end = -1, step = -1;
}
for (x = start; x != end; x += step ) {

(Единицу из length этом случае не вычитаем)
Ответить с цитированием