Я пишу фрагмент кода в JavaScript, который должен заменить все вхождения символа в нескольких строках внутри объекта JSON obj.Поиск vs Поиск и замена
Не все строки содержат определенный символ, и мы говорим о много строк. Поэтому мой вопрос: если говорить об эффективности, лучше всего заменить или искать строку для символа, и только если нашли make replace?
Другими словами:
var obj = ["str","str2","tr3","str","tr2","str3","str","s22tr2","str3","st","rtr2","str3","str","str2","str3","str","str2","str3","str","str2","str3","str","str2","str3","str","str2","str3","str","str2","str3","str","str2","str3","str","str2","str3","str","str2","str3"];
вариант 1:
for(var i=0;i<obj.length;i++){
if(obj[i].indexOf("s")!=-1){
document.write(obj[i].replace(/s/gi,"*"));
}
}
вариант 2:
for(var i=0;i<obj.length;i++){
document.write(obj[i].replace(/s/gi,"*"));
}
Мысли?
Спасибо.
Вы пробовали тестирования кода в [JSPerf] (http://jsperf.com/)? – Joseph
Это зависит в значительной степени от того, сколько из них будет содержать символ, поэтому профилирование всегда является лучшим подходом. – mellamokb
'if (str1.indexOf (" o "))' означает «Если первый символ не является« o », значит, это почти не то, что вы хотите. – Quentin