dgo*_*dgo -1 javascript variable-assignment conditional-operator
我想要的是类似以下内容:
let x=32
let y=x===32 ?: 7;
Run Code Online (Sandbox Code Playgroud)
我现实生活中的例子更像是这样的:
inlineFunction(parameterWithLongNameIAmTesting===20000?parameterWithLongNameIAmTesting:anotherLongNameVariable);
Run Code Online (Sandbox Code Playgroud)
基本上使三元短路。我想y等于x当且仅当x=== 32。在上面的情况下,分配给的值y将是 32。但是,如果我分配x给等于 50 或其他任何值,则将y等于 7。
javascript 中有内置的方法可以做到这一点吗?
您可以使用32orx作为第二个操作数:
let y = x === 32 ? x : 7;
Run Code Online (Sandbox Code Playgroud)
关于:
我之所以寻找这个,是因为在我使用的现实生活中,实际的表达式如下所示:
Run Code Online (Sandbox Code Playgroud)let y = x === 32 ? x : 7;这样看起来真的很乱。
如果只是一团糟,你可以更清晰地格式化它(恕我直言)(SharedRory也提出了这个建议):
inlineFunction(parameterWithLongNameIAmTesting===20000?parameterWithLongNameIAmTesting:anotherLongNameVariable);
Run Code Online (Sandbox Code Playgroud)
或者,如果您不喜欢重复的长名称,您可以使用本地常量:
const x = parameterWithLongNameIAmTesting;
inlineFunction(x === 20000 ? x : anotherLongNameVariable);
Run Code Online (Sandbox Code Playgroud)
javascript 中有内置的方法可以做到这一点吗?
除了上面的条件运算符或if/之外没有其他任何东西else。您在评论中说您认为添加了一些内容。您可能会考虑使用可选链接 ( let y = something?.prop;) ,它会短路 if somethingisnull或undefined,从而导致undefined错误,而不是错误something.prop。但这并不适用于此。
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |