【发布时间】:2020-05-11 06:27:56
【问题描述】:
如果可以简化这个场景,我想让我的情况更容易阅读和徘徊:
if((x === y)||(x === z)){...}
//and this one:
x = (x === y) || (x === z)? ... : ...;
//To something like:
if(x === (y || z)){...}
x = x === (y || z) ? ... : ...;
这将摆脱大量的括号和变量重复以及“听起来”合乎逻辑的(至少对我而言): 如果这个 var x 是这个或那个,那么我会这样做。
特别是当 x 是一些长对象引用时,例如:
this.someObject.KeyOfKeys[200].language === this.someOtherObject.KeyY.languages[10] || ...;
或者你如何处理逻辑“容易”但写起来很麻烦的条件?
【问题讨论】:
-
是的,in 运算符不起作用。我忘了它适用于属性,而不是值。因此,将适用于(在数组的情况下)索引,而不是值。
-
也许将比较/分配外包给一个私有函数会更容易,该函数只做这个并且有一个好名字来描述你想要实现的目标?
-
也许这是适合你的地方codereview.stackexchange.com
-
@Pac0 它在哪里说 OP 想要获取被检查的值?我可能错过了。
-
@Pac0 啊,也许吧。这目前只是分配一个布尔值。 telion,您能否澄清一下您是要获取成功比较的值还是只想检查一个值是否包含在一组值中?
标签: javascript conditional-statements