Necesito una función que haga una matriz como esta a partir de un objeto:
let obj = { name: 'john', age: 25, some: { a: 5.5, b: 5, c: 'pls' } } objectToArray(obj); // Outputs: [['name', 'john'], ['age', 25], ['some', [['a',5.5], ['b', 5], ['c','pls']]]]¿Cómo debo verificar exactamente si hay un objeto anidado? ¿Es el método Object.entries () una buena opción?
Creo que necesitamos una función que verifique si el objeto se pasa o no, si es así, lo abrirá y hará una matriz [clave, propiedad] usando el método Object.entries (), si también hay un objeto , luego se volverá a llamar a sí mismo y para ello ... PD: necesito usar solo javascript nativo con recursividad
Podemos recurrir así:
Verifique si el objeto pasado es un objeto usando instanceof .
return el valor que sea. Convierta el objeto en sus entradas usando Object.entries .
Iterar sobre cada par [key, value] usando Array#map .
objectToArray en el valor. (Saltar a 1. )Esto es lo que parece:
const obj = { name: 'john', age: 25, some: { a: 5.5, b: 5, c: 'pls', }, }; function objectToArray(obj) { if (!(obj instanceof Object)) return obj; return Object.entries(obj).map(([key, value]) => [key, objectToArray(value)]); } console.log(objectToArray(obj))