저는 JS 수를 계산하고 각 플레이어의 이름, 플레이어가 딜러인지 여부를 선택하여 시작하는 간단한 게임을 만들고 싶습니다. 각 게임마다 단 하나의 딜러 만있을 수 있습니다.중첩 된 'for'루프 배열이 정의되지 않았습니다.
function player(playerName, playerDealer) {
this.playerName = playerName;
this.playerDealer = playerDealer;
}
var playerNumber = prompt('Nr of players?');
var playersArray = [];
for (i = 0; i < playerNumber; i++) {
var j = i + 1;
var dealerAssigned = false; // control variable to check whether dealer has been assigned
var inputName = prompt('Name of player nr ' + j);
var inputDealer = prompt('Is player ' + inputName + ' also a dealer? (yes/no)');
playersArray[i] = new player(inputName, inputDealer);
for (k=0;k<playerNumber;k++){ // I want to go through the players array to check if dealer has been assigned
if (playersArray[k].playerDealer == 'yes') {
dealerAssigned=true;
break;
};
};
if(dealerAssigned){ //if dealer has been assigned, don't add the current player to the array and continue with the next iteration
alert("already assigned");
continue;
};
};
딜러가 임명되었는지 확인하는 간단한 테스트를 루프에 포함시켜야합니다. 그렇다면 스크립트를 '이미 할당 됨'으로 경고하고 다음 플레이어로 건너 뛰기를 원합니다. 하지만 계속해서 다음과 같은 오류가 발생합니다.
TypeError:
playersArray[k]
is undefined
왜 정의되지 않은 이유를 설명 할 수 있습니까?/내가 뭘 잘못하고 있니?
'k = 0'은 전역을 만듭니다. 나는 그걸 원하지 않습니다! – Sukima