好的,正如标题所说。我有一个如下所示的数组:
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/