← 返回首页
オブジェクトへのマップ
JA
私たちはこのオープンソースプロジェクトを世界中の人々に提供したいと考えています。このチュートリアルの内容をあなたが知っている言語に翻訳するのを手伝ってください。
    検索
    検索
    Light themeDark theme
    عربيDanskEnglishEspañolفارسیFrançaisIndonesiaItaliano日本語한국어РусскийTürkçeУкраїнськаOʻzbek简体中文
    レッスンに戻る

    オブジェクトへのマップ

    重要性: 5

    あなたは user オブジェクトの配列をもっており、それは name, surname と id を持っています。

    そこから、id と fullName (fullName は name と surname から生成されます)をもつオブジェクトの別の配列を作成するコードを書いてください。

    例:

    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 = /* ... your code ... */ /* 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

    したがって、実際には、オブジェクトの1つの配列を別の配列にマップする必要があります。 ここで =>を使ってみてください。

    解答
    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

    アロー関数の場合、追加の括弧が必要であることに注意してください。

    このように書くことはできません:

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

    ご存知のように、2つのアロー関数があります: 本体なし value => expr と本体あり value => {...}。

    ここでは、JavaScript は { をオブジェクトの開始ではなく、関数本体の開始として扱います。ワークアラウンドは “通常の” 括弧でそれらを囲むことです。:

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

    これで大丈夫です。