let foo = {};
const key1 = 'a';
const key2 = 'b';
const key3 = 'c';
foo[key1][key2][key3] = [1, 2];
Run Code Online (Sandbox Code Playgroud)
当我尝试做类似的事情时,我得到:
Uncaught TypeError: Cannot read property 'b' of undefined
Run Code Online (Sandbox Code Playgroud)
您必须先创建嵌套对象,然后才能在其中创建属性。
let foo = {}
const key1 = 'a'
const key2 = 'b'
const key3 = 'c'
foo[key1] = {};
foo[key1][key2] = {};
foo[key1][key2][key3] = [1, 2];
console.log(foo);Run Code Online (Sandbox Code Playgroud)
如果键列表是在数组中动态生成的,请参阅从数组填充嵌套对象?用于创建所有对象的函数。
您还可以使用动态键创建文字对象。只需确保在必要时创建嵌套对象,如 @Barmar 所示。
const key1 = 'a'
const key2 = 'b'
const key3 = 'c'
let foo = { [key1]: { [key2]: { [key3]: [1, 2] } } };
console.log(foo.a.b.c);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5528 次 |
| 最近记录: |