Скорость [] .forEach.call (...? - PullRequest
       7

Скорость [] .forEach.call (...?

6 голосов
/ 23 февраля 2010

Я большой поклонник использования метода forEach для нодлистов, таких как:

var nodes = document.querySelectorAll(".foo");

[].forEach.call(nodes, function (item) {
    //do stuff with item
});

Мне было интересно, разве такое занятие занимает больше времени, чем обычное? например,

for(var i=0;i<nodes.length;i++){
    //do stuff with nodes[i];
}

Ответы [ 3 ]

7 голосов
/ 23 февраля 2010

Вот хорошее сравнение производительности . В соответствии с этим Array.forEach медленнее, чем нативный for цикл

4 голосов
/ 13 декабря 2012

Я знаю, что это старый пост, но использовать метод forEach можно и путем кражи прототипа Array.

NodeList.prototype.forEach = Array.prototype.forEach;
1 голос
/ 13 апреля 2011

Зависит от браузера. И не забывайте о while (), который является самым быстрым в Firefox 4. Вот сравнение .

Также имейте в виду, что если вы поддерживаете старые браузеры, которые не поддерживают forEach, вам необходимо добавить время, необходимое для реализации полифилла .

...