0

我有以下代码:

     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(ratings) 查看对象中的内容时,它会显示该对象的所有属性。但是当我尝试获得这样的任何属性时:

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

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

4

1 回答 1

-1

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

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

或者

ratings['12345'];

或者

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

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

于 2013-01-06T11:36:16.437 回答