javascript - 循环遍历数组检查indexOf更简单吗?

标签 javascript for-loop jscript

好的,正如标题所说。我有一个如下所示的数组:

var hiTriggers = new Array();
hiTriggers = ["hi", "hai", "hello"];

我想检查一下它是否找到其中任何一个。我已经可以通过执行以下操作来实现此目的:

if(message.indexOf("hi") >= 0) {
   // do whatever here!
}

但我正在寻找一种更有效的方法,而不是进行 100 次 if() 检查。例如使用“hiTriggers”循环遍历数组。

我尝试了以下方法:

for(var i; i < hiTriggers.length; i++) {
    console.log(hiTriggers[i]); // simply to know if it checked them through)
    if(message.indexOf(hiTriggers[i]) >= 0) {
    //do stuff here
}
}

遗憾的是,这并没有按照我想要的方式工作,因为它根本不检查。 预先感谢,我希望我的帖子有意义!

编辑;请注意,我已经在另一个地方“声明”了“消息”。

最佳答案

它不会运行,因为您没有为 i 变量指定初始值。它是未定义

更改为使用var i=0;:

for(var i=0; i < hiTriggers.length; i++) {
    //console.log(hiTriggers[i]); // simply to know if it checked them through)
    if(message.indexOf(hiTriggers[i]) >= 0) {
        //do stuff here
        console.log("found " + hiTriggers[i]);
    }
}

关于javascript - 循环遍历数组检查indexOf更简单吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22331773/

相关文章:

java - 为什么 Java 跳过 For 语句?

python - C++ for循环嵌套语句到python

JavaScript 将字符串解析为等效对象

javascript - localStorage 不断添加 '0' 。 (jScript 和 HTML5)

javascript - Bootstrap 5 - 页面加载时模式打开

javascript - 当我尝试测试本地 Meteor 包时出错

Javascript:动态向对象添加函数

javascript - 使用 node-windows 打包 Node.js 应用程序作为服务运行

c++ for循环不同的方式

javascript - JScript 5.8/WSH 中具有属性查找的函数名称