JavaScript数组是否具有Python的"if a in list"?

Pau*_*ite 11 javascript python

如果我在Python中有一个列表,我可以使用in运算符检查给定值是否在其中:

>>> my_list = ['a', 'b', 'c']

>>> 'a' in my_list
True

>>> 'd' in my_list
False
Run Code Online (Sandbox Code Playgroud)

如果我有一个JavaScript数组,例如

var my_array = ['a', 'b', 'c'];
Run Code Online (Sandbox Code Playgroud)

我可以用与Python in运算符类似的方式检查值是否在其中,还是需要循环遍历数组?

Pet*_*rfy 13

var my_array = ['a', 'b', 'c'];
alert(my_array.indexOf('b'));
alert(my_array.indexOf('dd'));
Run Code Online (Sandbox Code Playgroud)

如果找不到元素,您将收到-1

  • 在现代浏览器中,可以,但是较旧的Internet Explorer不支持它。这是一个有关此问题(及解决方法)的问题:http://stackoverflow.com/questions/2790001/fixing-javascript-array-functions-in-internet-explorer-indexof-foreach-etc (2认同)

Dan*_*Kim 7

从ES6开始,建议使用include()代替笨拙的indexOf()。

var my_array = ['a', 'b', 'c'];

my_array.includes('a');  // true

my_array.includes('dd'); // false
Run Code Online (Sandbox Code Playgroud)