如何使用.indexOf JS函数与数组?还是另类?

时间:2013-01-17 12:53:27

标签: javascript

是否有可能使用.indexOf函数与数组进行搜索?像这样:

var d = "Hello";
var s = new Array ("Heart", "David", "Foo", "Hello");
if( d.indexOf(s) != -1) {
  alert("Found Hello");
}

如果我使用上面的代码,那么它不会发出任何警报。我检查了控制台,但没有错误

我在某处读到.indexOf函数仅用于字符串而不用于字符串数组。

Javascript中是indexOf的替代品还是.indexOf已提供我想要的内容?

Fiddle

3 个答案:

答案 0 :(得分:3)

您应该在您要搜索的对象上调用该方法而不是您要搜索的项目,s.indexOf(d)在您的情况下

答案 1 :(得分:1)

stringsarrays都有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");
}