Jquery 在真与假状态之间切换
我有一个代表一个玩家的对象,让我们说2个玩家Jquery 在真与假状态之间切换,jquery,boolean-logic,boolean-expression,Jquery,Boolean Logic,Boolean Expression,我有一个代表一个玩家的对象,让我们说2个玩家 //create a player object function player(name,state,score) { this.name = name; this.state = state; this.score = score; } var players = [ new player('player1',true,0), new player('player2',false,0) ]; 所以我希望球员们一个接
//create a player object
function player(name,state,score) {
this.name = name;
this.state = state;
this.score = score;
}
var players = [
new player('player1',true,0),
new player('player2',false,0)
];
所以我希望球员们一个接一个的移动。为此,我使用true或false状态。因此,如果为true,则对玩家1和vs进行计数(我计算玩家的正确答案并显示它们)
我现在拥有的是
$("#check").click(function(){
if(localCorrect == 2){
//counting number of correct cards and assigning it to the player
var i=0;
if (players[i].state == true){
var localscore = players[i].score;
localscore++;
score[i] = localscore;
//display the score
$("span#"+players[i].name).html(score[i]);
players[i].state = false;
i++;
players[i].state = true;
//if(i=2)
//{i=0}
}
}else{
//some other thing
}
});
我对这个有意见
所以我有两个问题:
- 答复1:
i
。而不是i++;
writei=(i+1)%num_of_players;
并定义变量num_of_players
;%
是计算除法剩余部分的模运算器。如果按概述使用,它会从0
重复迭代到num_of_players-1
。使用players.length
代替num of_players
- 答复2:
players[i]。state=false;
,players[i]。state=true;
与players[i]。state=!players[i]。state;
工作演示:
注意
- 您不必对布尔变量使用等式测试运算符;
就足够了if(players[i].state){…
- 如果使用相等性测试,请使用类型安全变量
而不是==
=
var得分=[0,0];
var localCorrect=2;
$(文档).ready(函数(){
//创建一个播放器对象
var Player=函数(名称、状态、分数){
this.name=名称;
this.state=状态;
这个分数=分数;
}
var玩家=[
新玩家('player1',正确,0),
新玩家('player2',假,0)
];
$(“#检查”)。单击(函数(){
如果(localCorrect==2){
//遍历所有玩家
for(var iterator=0;iterator
编辑:
您不会在players对象/数组中创建变量。您会为for..in循环创建一个变量迭代器。该变量表示数组的每个键(在本例中为players)。因此,在循环的2次迭代中,迭代器将为0和1。您还可以使用该迭代器对对象进行迭代,并获取其属性名等
无论如何,在这种情况下,我不能使用for..in循环而不是顺序for循环:
for(var iterator = 0; iterator < players.length; iterator++)
for(var iterator=0;iterator
这样我们就不需要将迭代器解析为整数。
阅读有关何时使用for..in循环和何时按顺序for循环的更多信息:
for(var iterator = 0; iterator < players.length; iterator++)