2011-08-11 10 views
0

私のオブジェクト名を動的に作成しようとしています。私はこのアラート(settings.financialDept.age)のような年齢を表示したい場合は、以下のコードはとても動的にオブジェクト名を生成する

var empdept = 'financialDept'; 

       var settings = { empdept :[{ 
       'name'  : 'bob', 
       'sname'  : 'the builder', 
       'age'  : '8', 
       'req'  : 'yes'}] 
      }; 

です。作業が、私はこの

var settings = { 'financialDept' :[{ 

       'name'  : 'bob', 
       'sname'  : 'the builder', 
       'age'  : '8', 
       'req'  : 'yes'}] 
      }; 

、今のような上記のスニペットコードを持っている場合、私は、このアラート(settings.financialDept.age)のような年齢を表示したい場合はされていない;.これは動作します。動的に行うには本当に助けが必要です。任意のヘルプは本当に感謝します。唯一valueは変数ではなく、keyかもしれここ

var empdept = 'financialDept'; 
var settings = {}; 

settings[emdept] = [{ 
    'name'  : 'bob', 
    'sname'  : 'the builder', 
    'age'  : '8', 
    'req'  : 'yes' 
}]; 
+0

(あなたの例のように[0] .age settings.financialDeptない)余分な配列を削除しました動的にオブジェクト名を生成しないでください。配列を使用するか、マップなどに格納します。 – Jeremy

+0

は両方ともfinancialDeptです。私が読んだことからいくつかの研究を行ったことから、オブジェクト名は引用でなければならないということです。上記のコードの最初のインスタンスでは、文字列の代わりにvar変数を挿入しようとしています。それがそれを認識しない理由です。 –

答えて

1

を試してみてください。あなたは何ができるか

はこれです:

var empdept = 'financialDept'; 
var settings = {}; 
settings[empdept]={name:'bob',sname:'the builder',age:'8',req:'yes'}; 
alert(settings.financialDept.age); 

あなたが説明するように値にアクセスすることができますので、私は

+0

ご協力いただきありがとうございます。あなたの解決策は正しいですが、それを動作させるには等号(設定[emdept] = {)と最後の中括弧の後に中括弧を削除する必要があります。 –

+0

あなたは正しいです。 :) それを私が直した! –

2

はこのようにそれを試してみてください

settings[empDept] = { // etc 
0
var o={key:value}; 

:感謝

+0

あなたの助けに感謝、あなたもソリューションですが、私は私のプロジェクトの配列を持っている必要があります。再度、感謝します –

関連する問題