回答編集履歴
1
イテレータの配列化
answer
CHANGED
@@ -1,7 +1,16 @@
|
|
1
|
+
### Fisher-Yates シャッフル
|
2
|
+
|
1
3
|
インデックス値は確定情報なので、シャッフルが良いのではないかと。
|
2
4
|
|
3
|
-
1. Array.prototype.keys
|
5
|
+
1. [Array.prototype.keys()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/keys) + [Array.from()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/from) or [Object.keys()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/keys)
|
4
6
|
2. Fisher-Yatesアルゴリズムでシャッフル
|
5
7
|
3. 先頭から順番にindexを持つ要素を抽出
|
6
8
|
|
9
|
+
- Array.prototype.keys() はイテレータを返すので、配列に変換する必要があります。また、イテレータ故に `[1,2,,4]` のような欠番要素を読み飛ばしてくれません。
|
10
|
+
- Object.keys() は配列の欠番を読み飛ばします。
|
11
|
+
|
12
|
+
### 更新履歴
|
13
|
+
|
14
|
+
- 2019/02/16 11:42 イテレータの配列化処理が抜けていたので、Array.from() と Object.keys() を追記しました
|
15
|
+
|
7
16
|
Re: williamsArk さん
|