Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Быстрый разбор списка элементов. (https://javascript.ru/forum/misc/10590-bystryjj-razbor-spiska-ehlementov.html)

x-yuri 11.07.2010 20:42

Цитата:

Сообщение от Riim
в последней итерации происходит лишнее перезаписывание переменной length. Не понимаю почему все так делают.

приоритеты другие. Хотя я тоже не понимаю, почему именно так делают

Цитата:

Сообщение от B~Vladi
Есть вариант по-лучше?

конечно, стандартные конструкции, что может быть лучше... :)
for( var i=0; i<anything.length; i++ )
    array.push( anything[i] );


Цитата:

Сообщение от рони
просто как вариант...может так?
var r=document.getElementsByTagName("*"); Array.a=function(a){var b=[];for(var c in a)if(typeof a[c]=="object")b[b.length]=a[c];return b}; r=Array.a(r);

экономим на пробелах? Не знаем о javascript компрессорах?

рони 11.07.2010 21:00

Вопрос: список элементов в массиве нужен или просто массив всего что есть в document.getElementsByTagName("*") ?
я про проверку на typeof == object
P.S. пробелы добавил ))) и да я много чего не знаю

Octane 11.07.2010 21:02

Цитата:

Сообщение от B~Vladi
я бы для ишака максимально оптимизировал код

Ага, я от push избавился, а порядок обхода забыл поменять.

B~Vladi 11.07.2010 23:15

Цитата:

Сообщение от x-yuri
var i=0; i<anything.length; i++

Этот цикл работает медленнее.
Цитата:

Сообщение от рони
я про проверку на typeof == object

Проверка не нужна.

B~Vladi 11.07.2010 23:18

Цитата:

Сообщение от x-yuri
Хотя я тоже не понимаю, почему именно так делают

Я делаю так, потому что:
1. в каждой итерации цикл выполняет одно действие
2. циклы в обратную сторону работают быстрее

x-yuri 12.07.2010 00:37

B~Vladi, а если бы не было javascript-компрессоров ты бы писал в одну строчку, используя однобуквенные переменные? ;) но вообще я сказал выше, что приоритеты имеют свойство отличаться

Riim 12.07.2010 00:44

Цитата:

Сообщение от B~Vladi
циклы в обратную сторону работают быстрее

я про то, что "--" делают в условии цикла, а не в его теле:
не понимаю почему while (i--) {a[i]}
вместо while (i) {a[--i]}
В первом варианте лишняя перезапись переменной в последней итерации, но ее оставляют как-будто намеренно.

рони 12.07.2010 01:32

Цитата:

Сообщение от x-yuri
а если бы не было javascript-компрессоров ты бы писал в одну строчку, используя однобуквенные переменные?

да))) обычно я так и пишу но благодаря форуму сейчас знаю что это стиль javascript-компрессоров
а по теме что чего быстрее https://blogs.oracle.com/greimer/ent..._way_to_code_a

x-yuri 12.07.2010 02:29

рони, я в общем-то B~Vladi отвечал и не то чтобы рассчитывал на ответ...

B~Vladi 12.07.2010 08:21

Riim,
Хм, точно, спасибо.


Часовой пояс GMT +3, время: 09:05.