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

Mapa a objetos
ES

Queremos que este proyecto de cdigo abierto est disponible para personas de todo el mundo.

Ayuda a traducir el contenido de este tutorial a tu idioma!

    Buscar en Javascript.info:
    Buscar en el tutorial:
    Light themeDark theme
    DanskEnglishEspaolFranaisIndonesiaItalianoTrkeOzbek
    regresar a la leccin

    Mapa a objetos

    importancia: 5

    Tienes un array de objetos user, cada uno tiene name, surname e id.

    Escribe el cdigo para crear otro array a partir de este, de objetos con id y fullName, donde fullName es generado a partir de name y surname.

    Por ejemplo:

    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 = /* ... tu cdigo ... */
    
    /*
    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

    Entonces, en realidad lo que necesitas es mapear un array de objetos a otro. Intenta usar => en este caso. Hay un pequeo truco.

    solucin
    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

    Ten en cuenta que para las funciones arrow necesitamos usar parntesis adicionales.

    No podemos escribirlo de la siguiente manera:

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

    Como recordars, existen dos funciones arrow: sin cuerpo value => expr y con cuerpo value => {...}.

    Ac JavaScript tratar { como el inicio de cuerpo de la funcin, no el inicio del objeto. La manera de resolver esto es encerrarlo dentro de parntesis:

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

    Ahora funciona.


    Web Proxy Viewer  |  New URL  |  Original Page