分かりづらいタイトルで申し訳ありません。。
SlackとGASを連動させて、複数ユーザーのGoogleカレンダーでの予定を作成するbotを作っています。
望んでいる動作としては、
①SlackからメンションがついたユーザーたちのIDをスプレッドシートに貼り付け、そのIDが格納された配列をAとする。
例えば
JavaScript
1var ArrayA = ["ID1","ID2","ID3","ID4"];
という配列ができたとします。
②ユーザーIDをキーとして、値に対応するメールアドレスをおいた連想配列Bから、配列AのIDに対応するアドレスを取り出したい
JavaScript
1var ArrayB = { 2ID1:"aa@gmail.com", 3ID2:"bb@gmail.com", 4ID3:"cc@gmail.com", 5ID4:"dd@gmail.com", 6ID5:"ee@gmail.com", 7ID6:"ff@gmail.com" 8};
という連想配列があった時に、配列Aに格納されているのはID1〜ID4なので、連想配列から取り出したい値としてはaa〜dd@gmail.comになります。
このような動作を望む場合、どのようなコードを書けばよいのでしょうか、、?
初学なもので、大変分かりづらい質問となってしまい大変恐縮ですが、お知恵をお貸しいただきたいです。。。
※追記
こちらが書いてみたコードです(といっても詰まってしまって途中で書けなくなってしまいました。。)
JavaScript
1var ArrayLength = ArrayB.length; /*for文でArrayBの要素数だけ繰り返すために取得*/ 2var lastRow = sht.getLastRow(); 3var lastCol = sht.getLastColumn(); 4var ArrayA = sht.getRange(lastRow,6,1,lastCol).getValues(); /*Slackから送られてきたユーザーID*/ 5 6 /*ArrayBに格納されているキーのうち、ArrayAの値と一致するものを取得したかったが、やり方がわからず、、*/ 7for (i = 0, i <= ArrayLength, i ++){ 8 if{ ArrayB[i] == ArrayA[i] /*ここまで書いて、条件式が明らかに違うと分かり、詰まってしまいました*/ 9 10 } 11 }
回答2件
あなたの回答
tips
プレビュー