【发布时间】:2019-11-29 21:15:03
【问题描述】:
对于格式错误的标题,我真的想不出更好的方式来描述我的意思。这是我当前的代码:
fromEn = true; // some boolean value
options = {
from: fromEn ? "en" : "es",
to: fromEn ? "es" : "en"
};
当fromEn 为真时,我希望from 为"en",而当它为假时"es"。 to 应该是 from 的“相反值”,可以这么说。我觉得我当前的代码太多余了,虽然它有效,但我想要一个更优雅的解决方案。有没有更好的方法来实现我想要做的事情?
编辑:我认为三元组是最好的方法。 See Emissary's solution 对于我选择做的事情,请看我的答案较低以找到三种可能的解决方案。谢谢大家的帮助!
【问题讨论】:
-
你可以做类似
const args = ["es", "en"]; options = { from: args[0^fromEn], to: args[1^fromEn]}的事情,但如果这样更好?我会怀疑的。我敢打赌,从现在起 2 个月后,即使是你也会想知道这是/做什么。 -
^不是逻辑运算符。相反,它是 bitwise XOR^运算符。 -
我觉得
options = fromEn ? {from:'en',to:'es'} : {from:'es',to:'en'}更习惯用语,虽然这真的取决于个人喜好。 -
@Emissary 对,或者
const [from, to] = fromEn? ["en", "es"]: ["es", "en"]; options = { from, to };或@101arrows,如果你还在寻找那些你在看的时候不会再理解的肮脏黑客,下一次:@987654335 @。我喜欢玩这种 hack,但是这些不应该出现在生产代码中。 -
不知道所有这些不同的变化除了学术练习和使用大致相同数量的字符来达到相同的结果之外获得了什么
标签: javascript