こういう配列があって
["hare", "ame", "yuki", "kumori", "kaminari"]
このように順番を入れ替えてシャッフルしたい
yuki, kumori, kaminari, ame, hare
先頭の要素と他の要素(ランダムで決める)を入れ替えることを繰り返して取得する例
コード.gs
function shuffle(){ var array = ["hare", "ame", "yuki", "kumori", "kaminari"] var len = array.length; for(var i = 0; i < len; i++){ var rand = Math.floor(Math.random() * len); var array_0 = array[0]; var array_rand = array[rand]; array[rand] = array_0; array[0] = array_rand; Logger.log(array) } Logger.log("【result】" + array) } |
意訳この機能は以下を実行する シャッフルしたい配列を用意する 配列の要素数を取得する 以下を要素数分繰り返す ランダム値に配列の要素数をかけて小数点を切り捨てて、配列の何番目の要素を入れ替えるかランダムで決める arrayの先頭の要素 arrayのランダム位置の要素 先頭の要素にランダム位置の要素を入れて ランダム位置の要素に先頭の要素を入れる 2つの位置を入れ替えた配列をログに出す 最終的に出来上がった配列をログに出す |
実行結果