torna alle lezioni

Create un oggetto da un array

importanza: 4

<<<<<<< HEAD

Let’s say we received an array of users in the form {id:..., name:..., age:... }.

8d04d0d2db97276dbb2b451c30a7bd3e05d65831

Immaginiamo di ricevere un array di utenti nella forma {id:..., name:..., age... }.

Scrivi una funzione groupById(arr) che ricavi un oggetto da esso, con id come chiave e gli elementi dell’array come valori

Ad esempio:

let users = [
  {id: 'john', name: "John Smith", age: 20},
  {id: 'ann', name: "Ann Smith", age: 24},
  {id: 'pete', name: "Pete Peterson", age: 31},
];

let usersById = groupById(users);

/*
// dopo la chiamata dovremmo avere:

usersById = {
  john: {id: 'john', name: "John Smith", age: 20},
  ann: {id: 'ann', name: "Ann Smith", age: 24},
  pete: {id: 'pete', name: "Pete Peterson", age: 31},
}
*/

Una funzione simile è molto utile quando si lavora con dati provenienti da un server.

In questo esercizio sappiamo che id è unico. Non ci saranno due array con lo stesso id.

Per favore utilizza il metodo .reduce nella soluzione.

Apri una sandbox con i test.

function groupById(array) {
  return array.reduce((obj, value) => {
    obj[value.id] = value;
    return obj;
  }, {})
}

Apri la soluzione con i test in una sandbox.