こういう配列があって
["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つの位置を入れ替えた配列をログに出す 最終的に出来上がった配列をログに出す |
実行結果
