1

javascript連想オブジェクトを作成しようとしていますが、すべて正常に動作しますが、変数値を文字列に変換して変数名自体を表示する代わりに、プロパティ名を作成するために渡された変数が機能しません。

以下のクイックサンプル

var users = {};
var genID = someId;

createObj('userID', function(userID, username, email) {
users[userID] = { genID: { a: a, b: b, c: c, d: d } };
})

期待される結果;

users = { 1: { 11: { a: 1, b: 2, c: 3, d: 4 } } }

結果を得る;

users = { 1: { genID: { a: 1, b: 2, c: 3, d: 4 } } }​

これらを解決するのを手伝ってください。ありがとうございました..

4

3 に答える 3

2

角かっこの構文が必要です。

users[userID] = {};
users[userID][genID] = { a: a, b: b, c: c, d: d };

基本的genIDに、式が必要な場所 (角括弧内) で使用する必要があります。オブジェクトリテラルが予想される場合、左側で使用しています。genIDそこでは定数識別子として扱われ、評価されません。

于 2012-10-05T18:59:50.720 に答える
2

あなたがしたことを見れば。最初にうまくいったのは: users[userID]. しかし、2番目のものはそうでgenIDはありませんでした。これは、オブジェクト表記を使用している場合、変数ではなく「名前」を入力していると想定されるため、それが解決されないためです。より良いでしょう:

var obj = {};
obj[genID] = {a: a, b: b, c: c, d: d};
users[userID] = obj;
于 2012-10-05T19:00:04.257 に答える
0
users[userID] = {};
users[userID][genID] = { { a: a, b: b, c: c, d: d } };
于 2012-10-05T18:59:14.387 に答える