2015-09-19 2 views
0

Я пытаюсь напечатать значение, хранящееся в объекте JS, но я не знаю, как я могу получить к нему доступ. Вот мой код:Не удается напечатать значение в объекте JS

var the_votes = { 
    "Heredia": { 
     voters: 70000, 
     parties: { 
      pln: 0, 
      pac: 0, 
      plib: 0, 
      rc: 0 
     } 
    }, 
    "San Jose": { 
     voters: 200000, 
     parties: { 
      pln: 0, 
      pac: 0, 
      plib: 0, 
      rc: 0 
     } 
    }, 
    "Alajuela": { 
     voters: 80000, 
     parties: { 
      pln: 0, 
      pac: 0, 
      plib: 0, 
      rc: 0 
     } 
    }, 
    "Cartago": { 
     voters: 50000, 
     parties: { 
      pln: 0, 
      pac: 0, 
      plib: 0, 
      rc: 0 
     } 
    }, 
    "Puntarenas": { 
     voters: 100000, 
     parties: { 
      pln: 0, 
      pac: 0, 
      plib: 0, 
      rc: 0 
     } 
    }, 
    "Limon": { 
     voters: 60000, 
     parties: { 
      pln: 0, 
      pac: 0, 
      plib: 0, 
      rc: 0 
     } 
    }, 
    "Guanacaste": { 
     voters: 90000, 
     parties: { 
      pln: 0, 
      pac: 0, 
      plib: 0, 
      rc: 0 
     } 
    } 

}; 

И я хочу, чтобы напечатать значение «избирателей» на консоли с помощью этого метода:

function updateTable(votes) { 
    table_clear(); 
    var table = $("#elections"); 
    var tbody = table.append($("<tbody/>")); 
    $.each(votes, function (province, data) { 
     var row = $("<tr/>"); 
     row.append($("<td/>")).html(province); 
     $.each(data.parties, function (partyName, partyValue) { 
      var td = $("<td/>"); 
      td.html(partyValue); 
      row.append(td); 
      td = $("<td/>"); 
      td.html(); 
      console.log(province.voters); 
      row.append(td); 

     }); 

     tbody.append(row); 
    }); 

}; 

Я постоянно получаю «неопределенные» на этой линии: "console.log(province.voters);

Как я могу получить доступ к значению при этом методе структуры

+1

'voters' и' parties' являются свойства одного и того же объекта. Почему тогда вы получаете доступ к 'data.parties', но' province.voters'? Как насчет 'data.voters'? –

+0

это, вероятно, не определено ... попробуйте использовать это, чтобы убедиться, что вам нужно: http://stackoverflow.com/questions/5357442/how-to-inspect-javascript-objects –

+0

@yaelalfasi: Да. Попробуйте 'console.log (« Heredia ».voters)'. –

ответ

0

province - это строка. Он не имеет свойства voters.

data является объект, который вы хотите получить доступ (который вы уже делаете правильно для data.parties):

console.log(data.voters); 
+0

Да, вы правы, я менял значение другим методом, поэтому я не мог получить правильное значение, спасибо! –

0

вы хотите console.log (data.voters);?

Провинция - это просто идентификатор строки, такой как «Puntarenas»

В качестве альтернативы вы можете сделать console.log (голосов [.vvv.voters]);

0

Для печати избирателей для каждой провинции:

console.log(data.voters); 
Смежные вопросы