1

我有以下字符串:

var teststring=“你好”

我有以下字符串数组:

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

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

if(teststring.indexOf(listofstring的任意部分)>-1)

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

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

对于(var i=0;i<字符串列表.length;i++){if(teststring.indexOf(字符串列表[i]>-1){返回true;}}

对于我正在尝试做的事情来说,上面占用了多行似乎太复杂了。。。

  • 1
    @丹,那个问题并没有解决我的问题。该问题中的答案需要与整个字符串完全匹配。如果您修改了示例中的[“I”、“like”、“turtles love me”],那么它会中断并返回false。在这种情况下,我想返回true,因为乌龟是数组中至少一个项的子字符串的一部分。
    – 罗兰多
    评论 2018年5月6日16:16
  • 这不是JavaScript内置的。您必须自己编写一个函数来完成此操作。 评论 2018年5月6日16:20
  • 这个问题不是建议链接的副本。请不要投票关闭。 评论 2018年5月6日16:24

1答案1

重置为默认值
4

你可以使用数组#some,若要缩短时间,请使用箭头函数和字符串#包含而不是字符串#indexOf:

if(listofstrings.some(str=>teststring.includes(str)){//找到一个}
1
  • 1
    这肯定比for循环更短,也不太复杂。如果有人有更好/更短的方法,请分享。也许有一天,Javascript会有一些内置函数来处理这个问题。
    – 罗兰多
    评论 2018年5月6日17:27

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.