LANG SELRCT

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

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;
}


実行結果

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

最新の投稿

Pixel 5でSuicaが使えないときはGoogle PayでSuicaを有効にしてみる

Pixel 5への機種変でSuicaが使えない人向けに書きました。 MISSION Pixel 5でSuicaを使えるようにする SOLUTION 旧端末で機種変更の設定を行う NFCをオンにする Google PayでSuicaを有効にする PROBLEMS 以前...