Javascript 使用三元表达式在两个字符串值之间切换的正确方法
我正在尝试创建一个在两个值之间切换的字符串。我已宣布为三元Javascript 使用三元表达式在两个字符串值之间切换的正确方法,javascript,jquery,typescript,Javascript,Jquery,Typescript,我正在尝试创建一个在两个值之间切换的字符串。我已宣布为三元 public position: string = (this.position == "positionOne" ? "positionOne" : "positionTwo"); 我希望有一个直接从“位置一”切换到“位置二”(字符串值)的函数。差不多` togglePosition = function() {this.position = !this.position} 然后它取相反的字符串作为值。或者我需要做完整
public position: string = (this.position == "positionOne" ? "positionOne" : "positionTwo");
我希望有一个直接从“位置一”切换到“位置二”(字符串值)的函数。差不多`
togglePosition = function()
{this.position = !this.position}
然后它取相反的字符串作为值。或者我需要做完整的评估,如果声明为三元?然后查看if(position=“positionOne”)
。。。做任何事。。或者else
。
你知道我的意思吗?:)你向我建议什么解决方案
非常感谢从现在开始将要显示的字符串的状态存储在布尔变量中可能更有意义,您可以轻松切换该变量,然后编写一个基于布尔变量返回相应字符串的方法。您可以使用对象和键作为所需值
功能切换(v){
返回{positionOne:'positionTwo',positionTwo:'positionOne'}[v];
}
变量位置='positionOne';
控制台日志(位置);
位置=切换(位置);
控制台日志(位置);
位置=切换(位置);
控制台日志(位置)代码>作为替代,您可以使用此选项(在值与“中间”不匹配的情况下):
功能切换(pos){
返回“位置一位置二”。替换(位置“”);
}
pos=‘位置一’;
console.log(pos=toggle(pos));
console.log(pos=toggle(pos));
console.log(pos=toggle(pos))代码>当然,你可以做尼娜提到的同样的事情:
var log=console.log;
功能切换(v){
返回['positionOne','positionTwo'].find(s=>s!=v);
}
变量位置='positionOne';
日志(位置);
位置=切换(位置);
日志(位置);
位置=切换(位置);
日志(位置)代码>我认为“正确的方法”将取决于人员和项目。对于简单的问题,我更喜欢三元法或@Nina Scholz的答案
您还可以使用ES6解构:
({ [position]: position } = { positionOne: "positionTwo", positionTwo: "positionOne" });
点击我
var position=“positionOne”;
函数myFunction(){
({
[位置]:位置
} = {
位置一:“位置二”,
位置二:“位置一”
});
document.getElementById(“demo”).innerHTML=位置;
}
你真的是指javascript吗?还是java?如果是javascript,为什么要使用类型化变量?@NinaScholz it's typescript您的三元操作很好,只是您应该交换最后两个值,否则您不会更改任何内容。您做到了,很好。这就是我一直在寻找的。真有用。如果你允许,我会带着这个片段。你可以用它。你可能会有一个相同风格的扩展使用。有用的评论与你的和其他答案,我现在有它更清楚。谢谢你。你在仓促下结论。你似乎有点激动。当我说你急于下结论时,我指的是“偷猎他人的解决方案”。虽然我知道你可能会这样理解,但我发布了这个解决方案,却没有意识到你也有同样的想法。不同的人几乎在同一时间提出相同的想法,这并不罕见。