String.search()vs String.split()和JavaScript中的迭代

时间:2012-07-17 18:24:27

标签: javascript performance search split loops

假设我有一串水果名称

var string = "cherries,oranges,limes"

和一串红色水果

var array = ["tomatoes", "cherries", "raspberries"]

在javascript中,如果我想查找字符串是否有任何红色水果,我可以

for(var i=0; i<array.length; i+=1){
    if(string.search(array[i])!=-1){
        return string.search(array[i]);

}

这与以下内容相比如何?

var string_array= string.split(','); 
for(var i=0; i<array.length; i+=1){
    for(var j=0; j<string_array.length; j+=1){
       if(string_array[j]==array[i]){
       return string_array[j];
       }
}
}
return -1;

1 个答案:

答案 0 :(得分:1)

这不起作用;

for(var i=0; i<array.length; i+=1){
   return string.search(array[i]);
}

你在第一次迭代时就回来了。

所以,这不会很好地比较。

顺便说一句,如果您对脚本性能比较感兴趣,建议您尝试使用jsperf