2012-07-17 15 views
0

可以说我有水果名字String.search()VS String.split()和迭代在JavaScript

var string = "cherries,oranges,limes" 

的字符串,在javascript如果红色水果

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

数组我想要找到的字符串是否有任何红色的水果,我可以做

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; 
+0

你是什么意思“这将如何比较”?您想知道您使用Chrome的Profiler或jsperf观察到的速度差异吗? – 2012-07-17 18:26:44

+0

是的,我的意思是性能。 – theannouncer 2012-07-18 18:52:33

回答

1

这是行不通的;

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

您在第一次迭代中返回。

所以,这不会比较好。

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

+0

Woops,错过了。固定在上面。感谢您的建议。 – theannouncer 2012-07-18 18:55:40