Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2020年4月29日水曜日

配列の要素をシャッフルして元のindex値も知りたい


配列をシャッフルする方法は以下↓にも書きましたが
https://www.pre-practice.net/2018/02/javascript_18.html

シャッフルしたindexも取得したくてindexArrayを追加しました。



コード.gs
function shuffleIndexAndWords() {
  var originalWords = ["Practice", "makes", "the", "impossible", "possible"];
  
  var indexArray = [];
  for(var i = 0; i < originalWords.length; i++) {
    indexArray.push(i);// [1, 2, 3,…]という配列を作る
  }

  var shuffledIndex = shuffle(indexArray);// indexArrayをシャッフルする
  Logger.log(shuffledIndex);
  
  var shuffledWords = [];
  for(var j = 0; j < indexArray.length; j++) {
    shuffledWords.push(originalWords[shuffledIndex[j]]);// originalWordsをシャッフルした配列を作る
  }
  Logger.log(shuffledWords);
}


function shuffle(originalWords) {
  var len = originalWords.length;
  for(var i = 0; i < 10; i++){// 混ぜる回数を設定する
    var rand = Math.floor(Math.random() * len);

    var word0 = originalWords[0];
    var wordsRand = originalWords[rand];
    
    originalWords[rand] = word0;
    originalWords[0] = wordsRand;
  }
  var words = originalWords;
  return words;
}


実行結果

以下のようなログが出力されます。
実行する度に結果は異なります。

Latest post

Google Formsで記述式の質問に字数制限を設定したい

記述式の質問には「回答の検証」を設定することができます フォームの編集画面 右下の︙メニューで「回答の検証」を選択します 検証方法には「数値」「テキスト」「長さ」「正規表現」という種類があります 今回は字数制限したいので「長さ」を選びます 長さには「最大文字数」か「最小文字数」を...