пятница, 25 января 2008 г.

Оптимизация JavaScript (Array)

Добавление и извлечение последнего элемента массива.

Обычный способ:

var arr = new Array();
arr.push('a');
arr.pop();
//Быстрый способ:
var arr = [];
arr[arr.length]='a';
delete arr[arr.length-1]; // а вот так делать стоит,
ибо тогда arr.length == 1 и arr[0] = 'undefined' используйте arr.pop();
Спасибо Сергею, указал на ошибку :)





14 комментариев:

Анонимный комментирует...

думаю, Вам будет интересно ознакомиться с
http://webo.in/articles/habrahabr/23-high-performance-ajax-applications/

Sun_ua комментирует...

Спасибо за линку, отличный ресурс.

Сергей ter Редькин комментирует...

Важно не забывать об одной «особенности»:

var arr = []; // arr.length = 0
arr[arr.length]='a'; // arr = ["a"]
delete arr[arr.length-1]; // arr = [undefined] & arr.length = 1

// ===

var arr = []; // arr.length = 0
arr.push('a'); // arr = ["a"]
arr.pop(); // arr = [] & arr.length = 0

Ибо она может серьезно подпортить жизнь. Универсальнее сделать
arr.splice(arr.length-1, 1)

Sun_ua комментирует...

Спасибо за корректировки Сергей, splice это выход, но не уверен, что сработает он быстрее чем pop. Надо будет протестировать.

Анонимный комментирует...

Отличная статья, спасибо!

Анонимный комментирует...

Почему подписка еще бесплатная? :))

Анонимный комментирует...

Ну ты даёшь!

Анонимный комментирует...

Хм… даже такое бывает.

Анонимный комментирует...

Огромное человеческое спасибочки !

Анонимный комментирует...

огромное спасибо что выложили в хорошем качестве.......я т

Анонимный комментирует...

http://lumerkoz.edu Is it so important?, http://talkingaboutwindows.com/members/Buy-Clarinex/default.aspx juris reorient http://barborazychova.com/members/Buy-Nolvadex.aspx valleys http://www.lovespeaks.org/profiles/blogs/buy-prilosec scaffolded bioeconomic http://www.ecometro.com/Community/members/Buy-Cephalexin.aspx stansted jicagynvi http://rc8forum.com/members/Buy-Synthroid.aspx rigour regroup

Unknown комментирует...

delete arr[arr.length--]; наверное получше будет чем arr.pop()

Unknown комментирует...

или что-то типа arr.length && delete arr[arr.length--];

Анонимный комментирует...

[b]Учительница:
- Здесь мы видим, что крокодил отложил яйца... Кто знает: зачем?
Вовочка:
- Старый он уже... Не нужны они ему... [/b]
Общество Мегаполиса Pi7.ru порадовала новым выходом очередного сборника нюансов.
Меня удивила предположим это "[url=http://www.2nt.ru/go/videoerotika.php]Очень необычная реклама пива [/url]" - Канечно вы можете встретить и для себя бездну интерестного
Ну а впрочем лучшее снадобье от скуки это анекдотец.
[url=http://my.pi7.ru/users/katya][IMG]http://www.my.pi7.ru/images/photos/medium/fc3ed22c063f63ce74de46bd2dce96d3.jpg[/IMG][/url]