我有一个字符串“SünilGarg”
现在,我要检查上面的字符串是否包含第二个字符串“üG#$”中的字符。
一种方法是使用循环检查第二个字符串与第一个字符串的每个字符。但是,还有其他最佳而有效的方法吗?
我很确定最快的方法是遍历较大的字符串,并针对每个字符检查较短的字符串是否包含该字符串:
function containsAny(haystack, needles){
for(var i = 0; i < haystack.length; i++){
for(var j = 0; j < needles.length; j++){
if(haystack[i] === needles[j]) {
return true;
}
}
}
return false;
}
以下是一些证据:http : //jsperf.com/stringcontainsany
编辑:
实际上,string.indexOf
它比索引到字符串中的速度更快,因此这样做效率更高:
function containsAny(haystack, needles) {
for (var i = 0; i < haystack.length; i++) {
if (needles.indexOf(haystack[i]) !== -1) {
return true;
}
}
return false;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句