如何检查由定界符分隔的2个字符串是否具有匹配的单词

时间:2019-02-27 16:24:07

标签: javascript

尝试检查2个字符串是否具有匹配的单词,返回true。

let 1st_string = chin, kore, span;
let 2nd_string = chin eng kore zulu

1st_string.split(',').indexOf(2nd_string) > -1 

我尝试了上面的代码,但始终返回false。我需要返回true,因为2_nd字符串包含来自1st_string的2个匹配单词。

3 个答案:

答案 0 :(得分:1)

我认为您的第二个字符串还将在单词之间包含逗号(如果是),那么很容易实现。

您可以像这样用逗号作为分隔符来分割字符串1和2

let firstString = 1st_string.split(',');
let secondString = 2nd_string.split(',');

完成后,您将获得firstStringsecondString变量作为数组,然后可以迭代第一个数组并使用include方法检查重复项

for (let i in firstString) {
    if(secondString.includes(firstString[i])){
        //you can do whatever you want after finding duplicate here;
    }
}

答案 1 :(得分:1)

1st_string is not a valid variable name

分割第一个字符串,并使用Array.some()来查看第二个字符串在结果数组中是否有任何单词:

let string_1 = 'chin, kore, span';
let string_2 = 'chin eng kore zulu';

const check = (str1, str2) => {
  return str1.split(',').some(word => str2.includes(word));
}

console.log(check(string_1, string_2))

答案 2 :(得分:1)

解决了变量的名称和值,您可以执行以下操作

let first_string = 'chin, kore, span';
let second_string = 'chin eng kore zulu';
const array1 = first_string.split(',').map(string => string.trim());
const array2 = second_string.split(' ');

function exist(list1, list2) {
    for (const element of list1) {
        if (list2.includes(element)) {
            return true;
        }
    }

    return false;
}

const result = exist(array1, array2);

console.log(result);