2016-10-02 177 views
-4

我有这样的代码在JavaScript匹配的indexOf数组元素

var array = [ 
    'apples', 
    'eggs' 
]; 

var search = prompt('Write one from this words ' + array.join(" ")); 

console.log(search); 

if (array.indexOf(search) === search) { 
    alert("Yep"); 
} 

如果用户写入的苹果或鸡蛋应该显示警报,但它不会做任何事情?为什么?

+5

当你想到的东西不工作,检查方法或函数的文档;这会清楚地说明[Array.prototype.indexOf()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)返回的内容,因此为什么它“*什么都不做”*“ –

+0

您可能正在寻找'if(array.includes(search))' – Bergi

回答

1

它应该是:

if (array.indexOf(search) >= 0) { 
    alert("Yep"); 
} 

indexOf,如果该项目已发现将返回指数。如果找不到该项目,它将返回-1

MDN docs

+0

@ZcelaAnonymní如果它解决了您的问题,请将此答案标记为已接受 – Julian