Javascript 检查数组中的元素

Javascript 检查数组中的元素,javascript,arrays,Javascript,Arrays,我试图检查数组中是否已经存在元素。我知道至少有两种方法可以做到这一点:和 我对它们都进行了测试,但在这两种情况下都得到了no: var myArray = ["Banana", "Orange", "Apple", "Mango"]; if ("Banana" in myArray) { console.log("yes") } else { console.log("no") // <-- } if (typeof myArray["Banana"] === 'undefin

我试图检查数组中是否已经存在元素。我知道至少有两种方法可以做到这一点:和

我对它们都进行了测试,但在这两种情况下都得到了
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")
}
var myArray=[“香蕉”、“橘子”、“苹果”、“芒果”];
if(myArray中的“香蕉”){
console.log(“是”)
}否则{

console.log(“no”)/这两个函数的作用几乎相同:检查
myArray
是否有一个名为
“Banana”
的属性,但它没有;它有键
0,1,2,
3
,并且
myArray[0]
处的值恰好是“Banana”

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


在这两种情况下,您都在查找数组的bananath(+1)元素,这是不正确的


无论哪种方式,都不应使用第一种方式(即使它用于此目的)因为它不打算与数组一起使用,因为它将查找属性。

为什么不将问题作为一个副本关闭?数组有元素。属性是可能的,但
'banana'
不是属性,只是一个元素。@Zachsauier副本描述了如何检查,但没有说明OPs方法不起作用的原因。问题相当复杂这个same@NinaScholz我想你说的和我在回答中说的一样?检查名为“Banana”的属性失败,因为数组没有名为“Banana”的属性,只是一个元素。
if( myArray.indexOf("Banana") >= 0 ) {
  console.log("yes")
} else {
  console.log("no")
}