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 に答える