2016-05-25 4 views
-1

私は以下のようなオブジェクトの配列を持っています。javascript - オブジェクト配列の変数名を返します

var object1 = {...}, 
var object2 = {...}; 

var array = [object1,object2]; 

スクリプトで実際の変数名にアクセスしたいと考えています。例えば、idは、実際の文字列 "object1"を返すのではなく、実際のオブジェクトを返すのが好きです。

for (i in array) { 
    var variableName = array[i]; 
} 

私は重要な値のペアを使用すると考えていましたが、その特定事項はかなり分かりました。

keyValuePair = [{name: "object1", object:object1}, {name:"object2",object:object2}]; 

理想的には構造化されているかどうか、アクセス方法はわかりません。

思考?

+1

変数名自体は、実際にオブジェクトの一部ではありませんので、あなたは内にそれを保存しない限り、対象物からのそれに戻って取得する方法はありませんオブジェクト。しかし、あなたが悪い方向に動くかもしれないように見えます...通常、object1、object2のような名前のオブジェクトを持つのは良い考えではありませんが、通常、デザインに何か問題があることを示唆しています。 –

+0

どうして名前を付けたいのですか? –

+0

私は、アプリケーション内で動的に作成されるので、実行時にオブジェクトの "名前"プロパティを変更する必要があるので、後でその変数名を使用できるようにする必要があります。わかりやすくするためにオブジェクト変数名を使うのは便利だと思いました。 – LCaraway

答えて

0

なぜ変数名をプロパティとして使用しないのですか?

var object1 = {...}, 
var object2 = {...}; 

var array = { object1: object1, object2: object2 }; 
0

私はこのようなものを作成します。keyValuePair["object1"]

var object1 = {...}; 
var object2 = {...}; 

var keyValuePair = { 
    object1: object1, 
    object2: object2 
}; 

が次にあなたがそのような object1にアクセスすることができます。 ECMAScriptの6で短い構文がありますことを

注:

var keyValuePair = { 
    object1, 
    object2 
};