Несомненно условный оператор внутри цикла снижает производительность. Если не хочется писать две почти одинаковые функции, то я бы сделал примерно так:
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 этом случае не вычитаем)
|