是否有更简单的方法来确定变量是否等于一系列值,例如:
if x === 5 || 6
而不是像这样迟钝的事情:
if x === 5 || x === 6
?
很好。如果您有一个较长的值列表,或许可以使用以下值:
if ([5,6,7,8].indexOf(x) > -1) {
}
取决于您正在执行的测试类型。如果您有静态字符串,则很容易通过正则表达式进行检查:
if (/^[56ab]$/.test(item)) {
//-or-
if (/^(foo|bar|baz|fizz|buzz)$/.test(item)) {
doStuff();
} else {
doOtherStuff();
}
如果您有一小组值(字符串或数字),可以使用开关
:
switch (item) {
case 1:
case 2:
case 3:
doStuff();
break;
default:
doOtherStuff();
break;
}
如果您有一个很长的值列表,您可能应该使用带有~arr.indexOf(item)
或arr.contains(item)
的数组:
vals = [1,3,18,3902,...];
if (~vals.indexOf(item)) {
doStuff();
} else {
doOtherStuff();
}
不幸的是Array.prototype.indexOf
在某些浏览器中不受支持。幸运的是,一个聚填料是可用的。如果您正在经历多填充Array.prototype.index的麻烦,您不妨添加
Array.prototype.contains
。
根据关联数据的方式,可以在对象中存储字符串的动态列表,作为其他相关信息的映射:
var map = {
foo: bar,
fizz: buzz
}
if (item in map) {
//-or-
if (map.hasOwnProperty(item)) {
doStuff(map[item]);
} else {
doOtherStuff();
}
中的
将检查整个原型链,而
对象。prototype.hasOwnProperty
将只检查对象,因此请注意它们是不同的。
问题内容: 有没有办法检查两个(非平凡的)选择是否等效? 最初,我希望两个选择在形式上等效,但是proving-sql-query-equivalency中的答案使 我停滞不前。 对于我的实际需要,我可以只检查两个选择的(实际)结果是否相同。 问题答案: 如果要比较查询结果,请尝试以下操作: 这将导致所有行仅由查询之一返回。
我试图创建一个函数,将多个变量与一个整数进行比较,并输出一个由三个字母组成的字符串。我想知道是否有办法将其翻译成Python。那么说: 它将返回以下列表: 这样的事情可能吗?
在JavaScript中,检查两个数组是否具有相同/相等的值(以任何顺序)的最佳方法是什么? 这些值只是数据库实体的主键所以它们总是不同的 方法应该是什么样子的? 另外,这个问题看起来像是重复的,但我没有找到任何与Javascript相关的东西。
我需要一个可以在junit 方法中调用的方法,该方法比较两个布尔值以检查它们是否相等,并返回一个布尔值。例如,类似这样的事情: 如果不相等,则返回false,如果相等,则返回true。我已经检查了布尔类,但是唯一接近的是< code>Boolean.compare(),它返回一个int值,我不能使用这个值。
问题内容: if var is ‘stringone’ or ‘stringtwo’: dosomething() 这行不通!我有一个变量,当它是两个值中的一个时,我需要它执行某些操作,但它不会输入if语句。在Java中工作。如何用Python编写? 问题答案: 这不能满足您的期望: 它与: 始终为真,因为它被认为是“真”值。 有两种选择: 或者您可以编写单独的相等性测试, 不要使用,因为比较对象