Я измерил время выполнения этих двух функций:
Выполнение следующих методов было измерено с помощью инструмента Chrome Profiles:
// jQuery GREP function
function alternative1(words, wordToTest) {
return $.grep(words, function(word) {
return wordToTest.indexOf(word) != -1;
});
}
// Native javascript FILTER function
function alternative2(words, wordToTest) {
return words.filter(function(word) {
return wordToTest.indexOf(word) != -1;
});
}
Массив words
был построен из 1 миллиона случайно сгенерированных строк. Каждый метод выполнялся 20 раз. С моей неожиданностью jQuery
функция grep была быстрее.
Время выполнения (20 исполнений):
Вы можете повторить измерения на этом jsFidle - это займет некоторое время, чтобы выполнить терпение.
Есть ли объяснение, почему jQuery grep функция быстрее, чем native JavaScript filter функция?
PS: Эти вопросы были вдохновлены этим ответом .