无法在JavaScript中获取对象的属性

时间:2013-01-06 11:25:05

标签: javascript

我有以下代码:

     var userId = r.response[0].uid; 
     if (typeof ratings[userId] !== 'undefined'){
        ratings[userId].likes = ratings[userId].likes++;
        ratings[userId].name = r.response[0].first_name +" "+ r.response[0].last_name;
     } else {
        ratings[userId] = new Object;
        ratings[userId].likes = 1;                          
        ratings[userId].name = r.response[0].first_name +" "+ r.response[0].last_name; 
     }

所以我有奇怪的事情。当我使用console.log(评级)来查看对象中的内容时,它会显示该对象的所有属性。但是当我试图获得这样的任何财产时:

 console.log(ratings[12345]) or console.log(ratings["12345"])

未定义。但console.log(ratings)说我有财产12345(它也是一个对象)。 我的代码有什么问题,如何解决?

1 个答案:

答案 0 :(得分:-1)

如果您使用数字作为用户的ID,则必须使用

var userId = '12345';
ratings[userId];

ratings['12345'];

ratings[12345+""]; // this is the last resort, if possibile don't use it!

请记住,纯数字不允许作为JavaScript变量/键标识符,但如果它们被强制转换为字符串,则可以将它们用作对象中的键。