Check for element in array
本问题已经有最佳答案,请猛点这里访问。
我正在尝试检查数组中是否已经存在元素。我知道至少有两种不同的方法可以做到这一点:(1)和(2)。
我测试了这两种方法,但在这两种情况下都得到了
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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") } |
在这两种情况下,我都得到了
另外,哪一个更快?
这是一把小提琴。
这两种方法几乎都是一样的:检查
如果要检查字符串是否在数组中,可以使用array.prototype.indexof:
1 2 3 4 5 | if( myArray.indexOf("Banana") >= 0 ) { console.log("yes") } else { console.log("no") } |
在这两种情况下,您都在寻找数组的bannath(+1)元素,这是不正确的。
无论哪种方式,都不应该使用第一个(即使它是为此目的而使用的),因为它不打算与数组一起使用,因为它将查找属性。