キーと値のペアの値を、JavaScriptの別のキーと値のペアのキーとしてどのように使用できますか?
次のことをしたいのですが。
var gizmos = {gizmo1: "G1"};
var things = {gizmos.gizmo1: "T1"};
物事が本質的に等しいように:
var things = {"G1": "T1"};
キーと値のペアの値を、JavaScriptの別のキーと値のペアのキーとしてどのように使用できますか?
次のことをしたいのですが。
var gizmos = {gizmo1: "G1"};
var things = {gizmos.gizmo1: "T1"};
物事が本質的に等しいように:
var things = {"G1": "T1"};
このような:
var gizmos = {gizmo1: "G1"};
var things = {};
things[gizmos.gizmo1] = "T1";
オブジェクト初期化子(別名オブジェクト「リテラル」)の一部としてそれを行う方法はありません。後で行う必要があります。
これが機能する理由は、JavaScriptでは、2つの方法でオブジェクトのプロパティにアクセス(取得または設定)できるためです。たとえば、ドット付き表記とリテラルfoo.bar
を使用するか、または括弧付き表記と文字列を使用しますfoo["bar"]
。後者の場合、文字列は文字列リテラルである必要はなく、任意の式の結果である可能性があります(この場合、別のオブジェクトのプロパティルックアップを含みます)。
補足:行を実行した後で変更 しても、のプロパティの名前は変更されません。の値は行の中でプロパティ名を決定するために使用されたため(他の式の場合と同様)、永続的なリンクはありません。gizmos.gizmo1
things[gizmos.gizmo1] = "T1";
things
gizmos.gizmo1
things[gizmos.gizmo1] = "T1";
var gizmos = {gizmo1: "G1"};
var things = {};
things[gizmos.gizmo1]="T1";
オブジェクトの特定のキーの値を取得するには、object["key"]
またはを使用しますobject.key