1

オブジェクト #1:

var chosenProperties = { 'size' : 'large' }

chosenPropertiesユーザーが以下のオブジェクトからアクセスしたいプロパティです。このオブジェクトは、フォームの値に基づいて作成されます。

オブジェクト #2:

var allProperties = { 'sizes' : { 'large' : 'x', 'small' : 'y' } }

通常allProperties.sizes.largex表示するように書き込みますが、アクセスする必要がある場合はどうすればよいxですchosenPropertiesか? それを行うための何らかの方法があると確信していますが、何も頭に浮かびません。

4

4 に答える 4

5

プロパティの名前が異なる変数に含まれるたびに、角括弧表記を使用してそのプロパティにアクセスできます。

allProperties.sizes[chosenProperties.size]

アップデート

ES2015 以降、オブジェクト リテラル内でも角括弧を使用できます。

var field = "foo";

const obj = {
  [field]: "bar"
};

obj.foo; // bar
于 2013-05-13T10:26:26.877 に答える
1
if (chosenProperties.size) {
    allProperties.sizes[chosenProperties.size]
}
于 2013-05-13T10:31:06.413 に答える
1

ここで何をしようとしているのかは 100% わかりませんが、次のことができることはわかっています。

allProperties.sizes[chosenProperies.size]

X を返す必要があります

于 2013-05-13T10:26:53.213 に答える
1

allProperties.sizes[選択したProperties.size]

于 2013-05-13T10:27:03.300 に答える