@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
