@qwaros От скуки сделал тест скорости. Сравнил метод join + indeOf и цикл for + indexOf
var testArr = [];
var strTest = "Цена от 50000";
for(i=1;i<=100000;i++) {
testArr.push("Пишу скрипты любой сложности, очень дорого. Цена от " +i);
};
var resultTime = {};
function speedTest(func) {
return function() {
var startTime = Date.now();
func.apply(null,arguments);
if(!resultTime[func.prototype.constructor.name]) resultTime[func.prototype.constructor.name] = 0;
resultTime[func.prototype.constructor.name] +=Date.now() - startTime;
};
};
function strJoin(arr,str) {
return arr.join(",").indexOf(str);
};
function cycle(arr,str) {
for(i = arr.length - 1;i>=0;i--) {
if(arr[i].indexOf(str)>=0) return true;
};
};
var speedJoin = speedTest(strJoin);
var speedCycle = speedTest(cycle);
for (i = 0;i<10;i++) {
speedJoin(testArr,strTest);
};
for (i = 0;i<10;i++) {
speedCycle(testArr,strTest);
};
for(func in resultTime){
console.log("Среднее время функции: " + func + ":" + resultTime[func]/10 + "ms");
};
Результат
Среднее время функции: strJoin:49ms
Среднее время функции: cycle:7.7ms