我测量了这两个函数的执行时间:
使用 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
100 万个随机生成的字符串构成。每种方法运行 20 次。令我惊讶jQuery
的是 grep 函数更快。
执行次数(20 次执行):
您可以在此jsFidle上重复测量- 执行需要一些时间,所以请耐心等待。
有什么解释为什么 jQuery grep函数比原生JavaScript过滤函数更快?
PS:这个问题的灵感来自这个答案。