Я читаю книгу "Функциональное программирование в Javascript".
В главе 2 приведено сравнение между императивным/функциональным кодом для поиска первых четырех слов, содержащих только буквы в строке:
Императив
var words = [], count = 0;
text = myString.split(' ');
for (i=0; count<4, i<text.length; i++) {
if (!text[i].match(/[0-9]/)) {
words = words.concat(text[i]);
count++;
}
}
Функциональные
var words = [];
var words = myString.split(' ').filter(function(x){
return (! x.match(/[1-9]+/));
}).slice(0,4);
Я рассуждал о том, что для любого случая, когда длина text
больше четырех, императивная версия будет быстрее, поскольку она подходит только для поиска первых четырех слов, соответствующих критериям, в то время как функциональная версия сначала фильтрует весь массив и только затем срезает первые четыре элемента.
Мои вопросы: правильно ли я принимаю это?