首页 > 解决方案 > 如何在javascript上使用动态键设置嵌套对象

问题描述

let foo = {};

const key1 = 'a';
const key2 = 'b';
const key3 = 'c';

foo[key1][key2][key3] = [1, 2];

当我尝试做类似的事情时,我得到:

Uncaught TypeError: Cannot read property 'b' of undefined

标签: javascript

解决方案


您必须先创建嵌套对象,然后才能在其中创建属性。

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);

如果键列表是在数组中动态生成的,请参阅Populate nested object from array? 用于创建所有对象的函数。


推荐阅读