在条件运算符中是否存在等效于Python的Javascript?

时间:2018-06-01 03:12:54

标签: javascript

是否存在与Python in条件运算符等效的Javascript?

good = ['beer', 'pizza', 'sushi']
thing = 'pizza'
if thing in good:
    print 'hurray'

在Javascript中编写上述Python代码的好方法是什么?

4 个答案:

答案 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,可能无法兼容某些平台/旧浏览器版本。