Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用三元表达式在两个字符串值之间切换的正确方法_Javascript_Jquery_Typescript - Fatal编程技术网

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您的三元操作很好,只是您应该交换最后两个值,否则您不会更改任何内容。您做到了,很好。这就是我一直在寻找的。真有用。如果你允许,我会带着这个片段。你可以用它。你可能会有一个相同风格的扩展使用。有用的评论与你的和其他答案,我现在有它更清楚。谢谢你。你在仓促下结论。你似乎有点激动。当我说你急于下结论时,我指的是“偷猎他人的解决方案”。虽然我知道你可能会这样理解,但我发布了这个解决方案,却没有意识到你也有同样的想法。不同的人几乎在同一时间提出相同的想法,这并不罕见。