提问人:Charles Kornoelje 提问时间:10/29/2020 最后编辑:Charles Kornoelje 更新时间:10/29/2020 访问量:463
如何在 Javascript 中实现三元赋值?
How does one achieve ternary assignment in Javascript?
问:
我想使用三元运算符在 Javascript(或 Typescript)中重新分配类变量。的重新分配取决于当前值,我可以使用以下内容进行更新:this.foo
this.foo
setFoo = () => {
this.foo = this.foo ? "" : "foo";
}
但是,我想知道我是否可以在不写两次的情况下进行重新分配。这将很有帮助,因为我正在尝试动态更新 Angular 组件(用 Typescript 编写)上的类。this.foo
this.foo
我希望能够写出如下内容,其中使用了真实/虚假的价值观。如果是真实的,则被分配;否则,将分配:this.foo
""
"foo"
setFoo = () => {
this.foo =? "" : "foo";
}
我尝试搜索类似的问题,但找不到答案。我最初的想法是使用 ??= Typescript 4.0 中的运算符,但我认为它不起作用。也许我理想的解决方案不存在,因为它可能是一个糟糕的编程习惯。谢谢
答:
0赞
Rizwan
10/29/2020
#1
您必须使用 IF ELSE 而不是使用三元语句, If else 会让你更好地控制写在它下面和高效使用的语句。
评论
0赞
Charles Kornoelje
10/29/2020
我很欣赏你的回应,但这并不能解决我两次写作的问题。一个将在 if 语句条件中,另一个将在分配变量。this.foo
1赞
jburtondev
10/29/2020
#2
好问题。不幸的是,这是不可能的。有些人使用一个速记版本,但它仍然包含重复:
foo = foo || otherCondition;
所以速记的速记,在我看来不太有用。
简短的回答:我会选择普通的三元。
评论
this.foo = this.foo || ""
this.foo = this.foo && ""
const
this.x
const x = (y) ? 1 : 2;
1