🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Mappare Oggetto JSON

Codegrind Team•Jul 21 2022

Traccia

Questo è un esercizio decisamente più corto rispetto agli altri, ma non per questo più facile. L’obiettivo è prendere un esempio di dati JSON che potremmo ricevere dagli API di Firebase e convertirlo in un array di oggetti.

Come potete ben vedere abbiamo ricevuto dei dati riguardanti degli utenti. Il problema è che non sono strutturati come un array di oggetti utente, ma bensì come un unico grande oggetto. Il nostro compito è appunto quello di rivedere interamente l’oggetto per creare un array di oggetti.

Se il risultato è corretto, ogni soluzione è valida.

Oggetto di Partenza

const data = {
  users: {
    wqiu237uh390fvx: {
      firstname: "luca",
      lastname: "rossi",
    },
    ksxz993ql617oer: {
      firstname: "marco",
      lastname: "verdi",
    },
  },
};

Array di Oggetti Finale

const data = [
  { id: "wqiu237uh390fvx", firstname: "luca", lastname: "rossi" },
  { id: "ksxz993ql617oer", firstname: "marco", lastname: "verdi" },
];

Soluzione

Pagina HTML

<!DOCTYPE html>
<html lang="it">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script src="script.js"></script>
  </body>
</html>

Pagina Script.js

const data = {
  users: {
    wqiu237uh390fvx: {
      firstname: "luca",
      lastname: "rossi",
    },
    ksxz993ql617oer: {
      firstname: "marco",
      lastname: "verdi",
    },
  },
};

const users = [];

for (let key of Object.keys(data.users)) {
  users.push({ id: key, ...data.users[key] });
}

console.log(users);