Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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_Variables_Logic - Fatal编程技术网

Javascript 最简单的方法是什么;另一个",;有两个静态值吗?

Javascript 最简单的方法是什么;另一个",;有两个静态值吗?,javascript,variables,logic,Javascript,Variables,Logic,我有一场2人的比赛。它们被称为p1和p2。每转一圈我都要在它们之间切换。这就是我现在所做的 var currentPlayer = "p1"; var nextPlayer = (currentPlayer === "p1") ? "p2" : "p1"; 但它似乎并不优雅。有没有一种方法可以从两个预定义的值中得到“另一个”。您所做的是一种非常常见的方法,所以这很好。但如果你想要更优雅的东西,你可以: var players = ["p1", "p2"]; var playerNum = 0;

我有一场2人的比赛。它们被称为
p1
p2
。每转一圈我都要在它们之间切换。这就是我现在所做的

var currentPlayer = "p1";
var nextPlayer = (currentPlayer === "p1") ? "p2" : "p1";

但它似乎并不优雅。有没有一种方法可以从两个预定义的值中得到“另一个”。

您所做的是一种非常常见的方法,所以这很好。但如果你想要更优雅的东西,你可以:

var players = ["p1", "p2"];
var playerNum = 0;
var currentPlayer = players[playerNum];
var nextPlayerNum = (playerNum + 1) % players.length;
var nextPlayer = players[nextPlayerNum];
对于两名球员来说,这可能是杀伤力过大。但它很容易推广到任意数量的玩家——只需向
players
数组添加更多元素即可


players
也可以是一组对象,其中包含所有玩家的状态,而不仅仅是他们的名字。

我认为您的方法很好。这当然很容易理解。最简单的方法<代码>(currentPlayer==“p1”)?“p2”:“p1”是最简单、可编辑的方式。可能的重复标题应该更改为从2个静态值中获取“其他值”的可能方式?代码的2倍,1/2是可以理解的,这并不更优雅。它更模块化,因为它不需要在整个代码中硬编码玩家名称。@Barmar我不同意,
var player1='p1',player2='p2';var nextPlayer=(currentPlayer==player1)?player2:player1这个模块和这个答案不一样吗,因为它适用于三,四。。。玩家也一样,你只需要更改玩家数组,现在你甚至可以从服务器获取该数组……@rene OP只对两个玩家感兴趣。这会给你下一个玩家,而不是另一个