Tengo un pequeño problema al intentar obtener el valor de un objeto determinado. Dado que esto es un poco difícil de explicar, estableceré un escenario que siga lo que necesito.

{"Gmail": {"example@example.com": "password1", "anotherexample@example.com": "password2}, ...}

Tengo un objeto (como se representa arriba, llamaremos al objeto "encriptado"). Puedo obtener el valor "Gmail" usando Object.keys(encrypted)[i] donde i representa el índice que estoy buscando. El problema que estoy encontrando es, ¿cómo obtengo exaxmple@example.com o password1?

He estado deambulando sin rumbo fijo por un tiempo tratando de resolver esto, buscando respuestas, pero parece que no puedo hacerlo o encontrar ninguna que no esté basada en matrices. Cualquier ayuda es genial, ¡gracias!

0
Basil Thaddeus 8 may. 2021 a las 02:06

1 respuesta

La mejor respuesta

Podrías usar Object.entries

Referencia : https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries

Esto convierte los objetos en matrices de key - value que puede atravesar, un ejemplo sería algo como:

const data = {
    "Gmail": { "example@example.com": "password1", "anotherexample@example.com": "password2" },
    "Gmail2": { "example@example.com": "password1", "anotherexample@example.com": "password2" },
};


Object.entries(data).forEach(([key, value]) => {
    const emailProvider = key;
    const emailList = Object.entries(value);

    console.log({ mail: emailProvider });

    emailList.forEach(([email, password]) => {
        console.log({ email, password })
    })
});
2
Daniel Rodríguez Meza 7 may. 2021 a las 23:17