比较逗号分隔的字符串

时间:2012-09-05 12:09:10

标签: javascript jquery

我有2个字符串

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

因此,如果我比较string1和string2,它应该说是真的,因为水果,动物存在于其他两个字符串的字符串中 如果没有,则为假。

3 个答案:

答案 0 :(得分:2)

将数组1中的每个元素与数组2中的每个元素进行比较可能会非常慢,因为运行时会以二次方式增加。

此算法如何查找重复项:

  1. 连接两个数组 - 常量运行时
  2. sort()生成的数组 - 运行时取决于javascript引擎使用的算法,但通常应为O(n log n)
  3. 迭代它将每个元素与前一个元素 - O(n)运行时
  4. 进行比较

    请注意,当输入字符串本身可能存在重复项时,需要使用相同的技术预先删除这些副本。

答案 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;
}

答案 2 :(得分: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);