是否有可能使用.indexOf
函数与数组进行搜索?像这样:
var d = "Hello";
var s = new Array ("Heart", "David", "Foo", "Hello");
if( d.indexOf(s) != -1) {
alert("Found Hello");
}
如果我使用上面的代码,那么它不会发出任何警报。我检查了控制台,但没有错误。
我在某处读到.indexOf
函数仅用于字符串而不用于字符串数组。
Javascript中是indexOf
的替代品还是.indexOf
已提供我想要的内容?
答案 0 :(得分:3)
您应该在您要搜索的对象上调用该方法而不是您要搜索的项目,s.indexOf(d)
在您的情况下
答案 1 :(得分:1)
strings和arrays都有indexOf
项功能。您将它应用于字符串,并检查数组的字符串化是否包含在其中 - 您没有错误,但不起作用。你必须反过来检查字符串是否是数组的项目:
s.indexOf(d) != -1
答案 2 :(得分:0)
解决此问题的另一种方法是使用JavaScript对象的哈希映射属性:
var d = "Hello";
var s = {"Heart": 1, "David": 1, "Foo": 1, "Hello": 1};
if (s[d]) {
alert("Found Hello");
}