2014-12-15 2 views
3

Привет, ребята, мне нужна помощь. У меня есть цикл, который должен обновить счет, подсчитав количество плит, которые игрок имеет по комментариям. Игрушка может видеть, какие аксессоры работают, а какие нет.Проблемы с доступом к массиву JavaScript

Player.prototype.calculateScore = function(){ 
    for(i = 0; i < 9; i ++){ 

     //works and prints tile1 player contents 
     console.log(game.tile.tile1.player); 

     //doesnt work 
     console.log(game.tile['tile' + i]['player']); 

     //works and prints the entire tile1 object 
     console.log(game.tile['tile' + i]); 

     //if(game.tile['tile' + i]['player'] == this.name){ 
     // this.score = this.score + 1; 
     //} 
    } 
} 

здесь является объект, содержащий данные

function Game(){ 
    this.tile = { 
     'tile1' : {card: '', player: ''}, 
     'tile2' : {card: '', player: ''}, 
     'tile3' : {card: '', player: ''}, 
     'tile4' : {card: '', player: ''}, 
     'tile5' : {card: '', player: ''}, 
     'tile6' : {card: '', player: ''}, 
     'tile7' : {card: '', player: ''}, 
     'tile8' : {card: '', player: ''}, 
     'tile9' : {card: '', player: ''} 
    }; 

я пытаюсь получить доступ к его неправильно, я в настоящее время работает код на Node.js сервере работает с Socket.io

ответ

2

You есть 'tile1' ..... 'tile9', но ваша первая итерация цикла будет искать tile0 причина var i = 0

tile0 не существует. Создайте его, или использовать:

for(var i = 1; i < 10; i++) { 
    console.log(game.tile['tile' + i].player); // will work cause "tile1" exits 
} 

Кроме того, причиной того, что console.log(game.tile['tile' + i]); работ, является причиной в следующей итерации цикла, где var i=1 >>'tile1' вызывается и вернулся, и никакие null свойства как ["tile0"]["player"] были пытались получить доступ.

+0

спасибо вам, что так просто, и имеет смысл только что разогнаться и попытаться получить все, что нужно, и отполировать за руку: D –

+0

@ andrewhutchings не о чем беспокоиться. Сделайте хороший сон и счастливое кодирование. –

Смежные вопросы