0

キーと値のペアの値を、JavaScriptの別のキーと値のペアのキーとしてどのように使用できますか?

次のことをしたいのですが。

var gizmos = {gizmo1: "G1"};
var things = {gizmos.gizmo1: "T1"};

物事が本質的に等しいように:

var things = {"G1": "T1"};
4

3 に答える 3

7

このような:

var gizmos = {gizmo1: "G1"};
var things = {};
things[gizmos.gizmo1] = "T1";

オブジェクト初期化子(別名オブジェクト「リテラル」)の一部としてそれを行う方法はありません。後で行う必要があります。

これが機能する理由は、JavaScriptでは、2つの方法でオブジェクトのプロパティにアクセス(取得または設定)できるためです。たとえば、ドット付き表記とリテラルfoo.barを使用するか、または括弧付き表記と文字列を使用しますfoo["bar"]。後者の場合、文字列は文字列リテラルである必要はなく、任意の式の結果である可能性があります(この場合、別のオブジェクトのプロパティルックアップを含みます)。


補足:行を実行した後で変更 しても、のプロパティの名前は変更されませんの値は行の中でプロパティ名を決定するために使用されたため(他の式の場合と同様)、永続的なリンクはありません。gizmos.gizmo1things[gizmos.gizmo1] = "T1";thingsgizmos.gizmo1things[gizmos.gizmo1] = "T1";

于 2012-12-31T15:15:56.007 に答える
0
var gizmos = {gizmo1: "G1"};
var things = {};
things[gizmos.gizmo1]="T1";
于 2012-12-31T15:15:58.113 に答える
0

オブジェクトの特定のキーの値を取得するには、object["key"]またはを使用しますobject.key

于 2012-12-31T15:17:03.917 に答える