私はそのような辞書オブジェクトを作成しようとしています
var obj = { varName : varValue };
私が期待しているのはvarName='foo'
、 obj は if である必要があります{'foo', 'some value' }
が{varName, 'some value'}
、変数の値は使用されていませんが、変数名がキーとして使用されています。可変値がキーとして使用されるようにするにはどうすればよいですか?
私はそのような辞書オブジェクトを作成しようとしています
var obj = { varName : varValue };
私が期待しているのはvarName='foo'
、 obj は if である必要があります{'foo', 'some value' }
が{varName, 'some value'}
、変数の値は使用されていませんが、変数名がキーとして使用されています。可変値がキーとして使用されるようにするにはどうすればよいですか?
このようにしてみてください:
var obj = {};
obj[varName] = varValue;
古い Javascript では、「動的」キーでオブジェクトを初期化できません。var obj = { varName : varValue };
と同等var obj = { "varName" : varValue };
です。これが Javascript の解釈方法です。
ただし、新しい ECMAScript は計算されたプロパティ名をサポートしており、次のことができます。
var obj = { [varName]: varValue };
ECMAScript 2015 では、昨年ブラウザーのサポートが向上し、可変インデックス表記を使用できるようになりました。
const obj = { [varName] : varValue };
これは構文的には
var obj = {};
obj[varName] = varValue;
式またはシンボルをプロパティ キーとして使用することもできます。
const contact = {
company: companyName,
};
const companiesWithContacts = {
[contact.company.toLowerCase()]: true
};
const myList = {
[Symbol.iterator]: createIteratorForList
};
function createIteratorForList() { ... }