LANG SELRCT

Google Apps Scriptのコードを書く場所  (新規作成: スプレッドシート | スクリプトエディタ

2018年2月18日日曜日

JavaScriptで配列をシャッフルする(先頭の要素とランダム位置の要素を入れ替える)


こういう配列があって
["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つの位置を入れ替えた配列をログに出す

最終的に出来上がった配列をログに出す



実行結果


最新の投稿

JIRA APIで選択リスト(複数選択)を課題作成時に選択してPOSTしたい

JIRA APIを利用して選択リスト(複数選択)フィールドに値を入れたくて書いたコードです。 コード.gsのこの部分で複数選択の値を選択できました。 customfield_10043 は手元のJIRAでの選択リスト(複数選択)のフィールドIDなので、各自の環境によって異なります...