检查数组中的元素

use*_*330 -2 javascript arrays

我正在尝试检查数组中是否已存在元素.我知道至少有两种不同的方法:[1][2].

我测试了它们,但no在两种情况下都可以:

var myArray = ["Banana", "Orange", "Apple", "Mango"];

if ("Banana" in myArray) {
  console.log("yes")
} else {
  console.log("no") // <--
}

if (typeof myArray["Banana"] === 'undefined') {
  console.log("no") // <--
} else {
  console.log("yes")
}
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我得到no.我错过了什么吗?

还有,哪一个更快?

这是一个小提琴.

Pau*_*aul 8

这两个都做了几乎相同的事情:检查是否myArray有一个被调用的属性"Banana",它没有; 它有按键0,1,2,3,和值在myArray[0]恰好是"香蕉".

如果要检查字符串是否在数组中,可以使用Array.prototype.indexOf:

if( myArray.indexOf("Banana") >= 0 ) {
  console.log("yes")
} else {
  console.log("no")
}
Run Code Online (Sandbox Code Playgroud)