2012-09-05 208 views
-2

我有2字符串的比较逗号分隔字符串

string1="fruit,animal,vehicle"; 
string2="plane,fruit,culture,animal"; 

所以,如果我比较字符串1和字符串应该说,自从果如此,动物存在的串在这两个否则,如果 假没有存在的字符串。

+2

那么你有什么尝试? –

+0

因此,如果两个字符串中至少有一个项目出现,它会返回true。 –

+1

正确解释所需行为是什么 –

回答

0
function compare(string1, string2) { 
    var arr1 = string1.split(","); 
    var arr2 = string2.split(","); 
    for (var i = 0; i < arr1.length; i++) { 
     for (var j = 0; j < arr2.length; j++) { 
      if (arr1[i] === arr2[j]) { 
       return true; 
      } 
     } 
    } 
    return false; 
} 
+0

将工作,但保证足够长的字符串缓慢。 –

+0

'arr1'和'arr2'是隐式的全局变量。 – jbabey

+0

@ jbabey很好。 –

2

在阵列1的每一个元素与阵列2的每个元素进行比较可以很慢,因为运行时增加平方。

这个怎么样的算法来查找重复:

  1. 将两者连接起来的阵列 - 恒定运行时
  2. 排序()所得到的阵列 - 运行时间取决于由JavaScript引擎所使用的算法,但通常应为O (N log n)的
  3. 叠代比较每个元件到precedessor - O(n)的运行时

注意,当存在可以在输入串吨重复本身,这些需要事先使用相同的技术去除。

0
var string1="fruit,animal,vehicle", 
string2="plane,fruit,culture,animal"; 
function compare(string1, string2){ 
    var s = string1.split(","); 
    for(var k = 0 ;k < s.length; k++){ 
     if(string2.indexOf("," + s[k] + ",")) 
     { 
      return true; 
     } 
    } 
    return false; 
} 


compare(string1, string2);