前提
Google Apps Script(GAS)でmapを用いて配列を操作するプログラムを作成しています。
アロー関数でmapの第2引数のオブジェクト(こちらでは配列)をthisで利用したいのですが、上手くできません。
従来の書き方では思うように出力されます。
実現したいこと
従来の書き方で記載したコードは次のソースコードです。
function myFunction01() { var wordlist = { 'あ': 1, 'い': 2, 'う': 3, 'え': 4, 'お': 5 }; var selectword = ['あ', 'い', 'う']; var result = selectword.map( function (value) { return this[value]; }, wordlist ); console.log(result); //出力結果:[ 1, 2, 3 ] }
アロー関数で記載すると以下になりますが、出力結果が意図したものではありません。
function myFunction02() { let wordlist = { 'あ': 1, 'い': 2, 'う': 3, 'え': 4, 'お': 5 }; let selectword = ['あ', 'い', 'う']; let result = selectword.map((value => this[value]), wordlist); console.log(result); //出力結果:[ undefined, undefined, undefined ] }
アロー関数で記載し、第2引数のオブジェクトをthisで利用したいです。
どのようなコードにしたら、宜しいか、どなたかご教示頂けますと助かります。
発生している問題・エラーメッセージ
アロー関数で第2引数のオブジェクトを利用できず、thisを使えない。出力結果が[ 1, 2, 3 ]にならない。
試したこと
以下のように第2引数を用いず、thisも用いなければ、出力されます。
function myFunction03() { let wordlist = { 'あ': 1, 'い': 2, 'う': 3, 'え': 4, 'お': 5 }; let selectword = ['あ', 'い', 'う']; let result = selectword.map((value => wordlist[value])); console.log(result); //出力結果:[ 1, 2, 3 ] }
補足情報(FW/ツールのバージョンなど)
参考サイト:
【JavaScript入門】配列処理をするmap()の使い方とMapオブジェクトの解説!
https://www.sejuku.net/blog/21812

回答3件
あなたの回答
tips
プレビュー