forEach vs. for

Nov 19, 2007 18:22


Необходимость пройтись по массиву возникает довольно часто. Как это сделать наиболее быстро?
// Нервным поборникам красивого кода дальше лучше не читать ;)
Код
Для forEach:

arr.forEach(function (item) {
  var res = " " + item + " ";
});

В случае, если браузер не поддерживает ( Read more... )

javascript

Leave a comment

Comments 8

cousin_it November 19 2007, 06:39:43 UTC
А как же for..in?

Reply

gregof November 19 2007, 08:11:57 UTC
А что с ним?

Он немного быстрее в FF и Opera, но несколько тормозней в IE. Выигрыш есть но небольшой. Зато имеет неслабый подводный камень, если кто-то на странице расширил прототип Array, for..in захватит все эти расширения. А в наш век, когда на никто не гарантирует единственность твоего скрипта на странице, рассчитывать на неприкосновенность Array не приходится.

Reply

alshur July 17 2008, 12:39:34 UTC
hasOwnProperty спасает

Reply

gregof July 17 2008, 12:45:52 UTC
проход по массиву с дополнительным условием на итерацию
так ли оно нужно?

Reply


(The comment has been removed)

gregof November 19 2007, 07:43:14 UTC
А я решил сюда писать для роботов.
Для людей есть яру :)

Reply

(The comment has been removed)

gregof November 19 2007, 07:46:00 UTC
Программа выполнила недопустимую операцию...

Reply


shabunc September 7 2008, 19:49:57 UTC
у меня главная претензия к forEach - нет break'а, хотя по логике должен быть. видимо потому, что дописывался как надстройка, уже на jsе - и бдымс syntax error

а ещё я такой забавный баг знаю, связанный с форычем
посмотри в файрбаге и сравни
var arr = new Array(3);
arr.forEach(function($1){console.log($1)});

var arr = [undefined,undefined,undefined];
arr.forEach(function($1){console.log($1)});

и, наконец
var arr = new Array(3);
for(var j=0;j

Reply


Leave a comment

Up