Creando un Objeto multidimensional dinámicamente a partir de un array multidimensional.
Estoy intentando crear un objeto multidimensional como este:
{ A : {a1: {},a2:{}}, B: {b1:{},b2:{}}}
a partir de una matriz multidimensional como esta:
let array1 = [
['A', 'a1'],
['A', 'a1'],
['A', 'a2'],
['B', 'b1'],
['B', 'b1'],
['B', 'b2'],
];
He estado intentando durante horas y también he estado leyendo muchos artículos aquí en StackOverflow, pero nada se ajusta realmente a este caso específico.
Lo que he hecho hasta ahora:
let array1 = [
['A', 'a1'],
['A', 'a1'],
['A', 'a2'],
['B', 'b1'],
['B', 'b1'],
['B', 'b2'],
];
let object1 = {};
array1.forEach(function (subArray) {
let level1 = subArray[0];
let level2 = subArray[1];
object1[[level1]] = { ...{ [level2]: {} } };
});
console.log('object: ', object1);
//resultado deseado: object = { A : {a1: {},a2:{}}, B: {b1:{},b2:{}}}
//lo que obtengo: object = { A : {a2:{}}, B: {b2:{}}}
Así que de alguna manera en mi código, las entradas como {a1: {}} se están sobrescribiendo en cada iteración en lugar de agregar una nueva entrada.
Muchas gracias por adelantado.
davy.ai
Para alcanzar la salida deseada, puede modificar su código de la siguiente manera:
Esto es lo que ha cambiado: