Me gustaría crear una matriz como esta por código.
let arr = { 'First': { 'bg': 'a', 'fg': 'b' }, 'Second': { 'bg': 'c', 'fg': 'd' } };Esto no funciona:
TypeError no capturado: no se pueden establecer propiedades de indefinido (estableciendo 'bg')
var arr = []; arr['First']['bg'] = 'a'; arr['First']['fg'] = 'b'; arr['Second']['bg'] = 'c'; arr['Second']['fg'] = 'd';Tiene que crear objetos intermedios antes de poder crear las propiedades anidadas.
var arr = {}; arr['First'] = {}; arr['First']['bg'] = 'a'; arr['First']['fg'] = 'b'; arr['Second'] = {}; arr['Second']['bg'] = 'c'; arr['Second']['fg'] = 'd'; Y tenga en cuenta que debe usar {} , no [] . {} es un objeto, [] es una matriz.
Esto hará el trabajo:
var arr = {}; // Create the "First" arr['First'] = {}; arr['First']['bg'] = 'a'; arr['First']['fg'] = 'b'; // Create the "Second" arr['Second'] = {}; arr['Second']['bg'] = 'c'; arr['Second']['fg'] = 'd'; console.log(arr);