代码之家  ›  专栏  ›  技术社区  ›  Rolando

检查字符串数组是否包含javascript中给定字符串的子字符串?

  •  1
  • Rolando  · 技术社区  · 8 年前

    我有以下字符串:

    var teststring = "Hello"
    

    我有以下字符串数组:

    var listofstrings = ["Hellothere", "Welcome", "Helloworld", "Some String"];
    

    我想在条件的内部进行一个简单的检查,以返回“listofstrings”中的任何内容是否与“teststring”的任何部分匹配。以下是伪代码:

    if(teststring.indexOf(any-part-of-listofstrings) > -1)
    

    我如何才能做到这一点?我能想到的最简单的方法是循环,但我想看看是否有更好的方法。

    对于循环,我指的是多行,如:

    for(var i = 0; i < listofstrings.length; i++) {
        if(teststring.indexOf(listofstrings[i] > -1) {
            return true;
        }
    }
    

    以上内容占用了多行内容,对于我正在尝试的内容来说似乎太复杂了。。。

    1 回复  |  直到 8 年前
        1
  •  4
  •   ibrahim mahrir    8 年前

    您可以使用 Array#some ,并使用箭头函数和 String#includes 而不是 String#indexOf :

    if(listofstrings.some(str => teststring.includes(str))) {
        // found one
    }