前回javascriptで班分けプログラムを作成したのですが、それをSlackと連携させslush commandで出力したいと思いGAS
にコードを移し、slack上で出力してみたのですが、期待通りにならずハマってしまいました。
【前回URL】
https://teratail.com/questions/256462
// src function doPost() { const members = ['吉田','友近','井上','石田','手塚','大宮','宇都宮','佐藤','長根','近藤','山本']; const total = 3; const numberPerTeam = Math.floor(members.length / total); const moduloMembers = members.length % total; let results = ''; //修正箇所1 const s = members => { for (let i = members.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [members[i], members[j]] = [members[j], members[i]]; } return members; } for (let i = 0; i < total; i++) { results += s(members).splice( 0, numberPerTeam + ( i < moduloMembers )).join('\n') //修正箇所2 } let response = results; //修正箇所3 return ContentServic.creatTextOutput(JSON.stringify(response)).setMimeType(ContentService.MimeType.JSON); } // output "#近藤\n山本\n宇都宮\n吉田" // 期待する出力結果 # 近藤 //リーダー 山本 //メンバー1 宇都宮 //メンバー2 吉田 //メンバー3 # 大宮 手塚 友近 佐藤 # 井上 長根 石田
outputのように一番最初の配列しか出力されないのですが、なぜこのような出力結果になってしまうのでしょうか。
教えていただきたいです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー