geek-logo.jpg

メモをとるのは面倒くさいし、検索するのも面倒くさい。散らかるブックマークも好きじゃない・・・そんな理由も何かにつながる

JavaScriptの配列を拡張してみる(1)

痒いところに手が届かないJavaScriptの配列・・・

まずは個人的に良く使うシャッフル関数を拡張します。

 1. Array.prototype.shuffle = function(){
 2.   var i = this.length;
 3.   while(i){
 4.     var j = Math.floor( Math.random() * i );
 5.     var t = this[--i];
 6.     this[i] = this[j];
 7.     this[j] = t;
 8.   }
 9.   return this;
10. }

1行目:
Arrayオブジェクトのプロトタイプにshuffle関数を実装します。

2〜8行:
配列の長さを取得し、その長さ分デクリメントしながらループさせます。

4行目:
配列の長さを上限にした乱数を取得し、それを整数に繰り下げ(※配列は0から数えられるため)、変数jに代入しておく。

5行目:
ループカウンタをデクリメントした位置の値を変数tに代入しておく。

6行目:
ループカウンタの位置の値を、乱数で取得した変数jの位置の値で置き換える。

7行目:
乱数で取得した変数jの位置の値を、変数tで置き換える。

9行目:
配列を返す。


使い方は簡単です。

 1. // 配列listを生成
 2. var list = [1,2,3,4,5];
 3. // 配列listをシャッフルする
 4. list.shuffle();
 5. console.log(list); // [2,5,3,1,4]

JavaScriptを覚えるなら

JavaScript 第6版

新品価格
¥4,410から
(2013/5/7 15:34時点)

Posted by ひとりごとをつぶやくぼく JavaScript

コメント

コメントはありません。

お名前*
メールアドレス*
URL
コメント*
 

投稿されたコメントは管理者に承認された後に公開されます。

コメントする