[ Web Proxy ]
URL:
Viewing: https://it.javascript.info/task/map-objects [Back]  [Original]

Map di oggetti
IT

Vorremo rendere disponibile questo progetto open-source per persone in tutto il mondo.

Aiutaci a tradurre il contenuto di questo tutorial nella tua lingua!

    Cerca in Javascript.info:
    Cerca nel tutorial:
    Light themeDark theme
    DanskEnglishEspaolFranaisIndonesiaItalianoTrkeOzbek
    torna alle lezioni

    Map di oggetti

    importanza: 5

    Avete un array di oggetti user, ognuno di questi possiede name, surname e id.

    Scrivete il codice per creare un altro array che derivi da questo, sempre composto da oggetti con id e fullName, dove fullName viene generato da name e surname.

    Un esempio:

    let john = { name: "John", surname: "Smith", id: 1 };
    let pete = { name: "Pete", surname: "Hunt", id: 2 };
    let mary = { name: "Mary", surname: "Key", id: 3 };
    
    let users = [ john, pete, mary ];
    
    let usersMapped = /* ... il vostro codice ... */
    
    /*
    usersMapped = [
      { fullName: "John Smith", id: 1 },
      { fullName: "Pete Hunt", id: 2 },
      { fullName: "Mary Key", id: 3 }
    ]
    */
    
    alert( usersMapped[0].id ) // 1
    alert( usersMapped[0].fullName ) // John Smith

    Quindi, in realt avrete bisogno di mappare un array di oggetti in un altro. Provate ad utilizzare =>.

    soluzione
    let john = { name: "John", surname: "Smith", id: 1 };
    let pete = { name: "Pete", surname: "Hunt", id: 2 };
    let mary = { name: "Mary", surname: "Key", id: 3 };
    
    let users = [ john, pete, mary ];
    
    let usersMapped = users.map(user => ({
      fullName: `${user.name} ${user.surname}`,
      id: user.id
    }));
    
    /*
    usersMapped = [
      { fullName: "John Smith", id: 1 },
      { fullName: "Pete Hunt", id: 2 },
      { fullName: "Mary Key", id: 3 }
    ]
    */
    
    alert( usersMapped[0].id ); // 1
    alert( usersMapped[0].fullName ); // John Smith

    Da notare che nellarrow function abbiamo bisogno di utilizzare unulteriore parentesi.

    Non possiamo scrivere semplicemente:

    let usersMapped = users.map(user => {
      fullName: `${user.name} ${user.surname}`,
      id: user.id
    });

    Se ricordate, ci sono due tipi di arrow function: senza corpo value => expr e con il corpo value => {...}.

    Qui JavaScript tratter { come linzio del corpo della funzione, non linizio delloggetto. Questo trucco viene utilizzato per racchiuderle nelle normali parentesi:

    let usersMapped = users.map(user => ({
      fullName: `${user.name} ${user.surname}`,
      id: user.id
    }));

    Ora funziona.


    Web Proxy Viewer  |  New URL  |  Original Page