1

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

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

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

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

indexOfJavascript中是否有替代品或.indexOf已经提供了我想要的东西?

小提琴

4

3 回答 3

3

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

于 2013-01-17T12:55:27.130 回答
1

字符串数组都有indexOf函数。您将它应用于字符串,并检查数组的字符串化是否包含在其中 - 您没有收到错误,但不起作用。您必须反过来检查字符串是否是数组的一项:

s.indexOf(d) != -1
于 2013-01-17T12:58:08.480 回答
0

解决这个问题的另一种方法是使用 JavaScript 对象的 hash map 属性:

var d = "Hello";
var s = {"Heart": 1, "David": 1, "Foo": 1, "Hello": 1};
if (s[d]) {
    alert("Found Hello");
}
于 2013-01-17T12:58:35.113 回答