是否存在与Python in
条件运算符等效的Javascript?
good = ['beer', 'pizza', 'sushi']
thing = 'pizza'
if thing in good:
print 'hurray'
在Javascript中编写上述Python代码的好方法是什么?
答案 0 :(得分:5)
您可以使用.includes
:
const good = ['beer', 'pizza', 'sushi']
const thing = 'pizza';
if (good.includes(thing)) console.log('hurray');
请注意,这与Javascript的in
运算符完全分开,后者检查某些内容是否是对象的属性:
const obj = { foo: 'bar'}
const thing = 'foo';
if (thing in obj) console.log('yup');
请注意includes
来自ES6 - 请确保包含polyfill。如果你不能这样做,你可以使用旧的,语义较少的indexOf
:
const good = ['beer', 'pizza', 'sushi']
const thing = 'pizza';
if (good.indexOf(thing) !== -1) console.log('hurray');
答案 1 :(得分:3)
如果您使用的是JavaScript ES6,我相信Array.includes正是您所需要的。如果您需要支持旧版本的JS,那么您可以使用Array.indexOf(或使用polyfill for Array.contains)。
// Array.includes()
if (yourArray.includes("some value")) {
// Do stuff
}
// Array.indexOf()
if (yourArray.indexOf("some value") > -1) {
// Do stuff
}
答案 2 :(得分:2)
简单的Google搜索会回答您的问题。在google#1搜索https://www.w3schools.com/jsref/jsref_indexof_array.asp中找到了这个。
您可以在javascript中使用indexOf
方法查找数组中的元素。
答案 3 :(得分:2)
您可以使用indexOf()方法进行检查。
例如:
const good = ['beer', 'pizza', 'sushi']
const thing = 'pizza';
if(good.indexOf(thing) !== -1)
//do something
如果匹配,将返回第一个索引。如果没有,将返回-1
。
快速说明:
ECMAScript 1附带indexOf()
方法,因此它将与所有浏览器兼容。但是includes()
方法来自女巫ECMAScript 6,可能无法兼容某些平台/旧浏览器版本。