回答編集履歴

1

イテレータの配列化

2019/02/16 02:42

投稿

think49
think49

スコア18166

test CHANGED
@@ -1,8 +1,12 @@
1
+ ### Fisher-​Yates シャッフル
2
+
3
+
4
+
1
5
  インデックス値は確定情報なので、シャッフルが良いのではないかと。
2
6
 
3
7
 
4
8
 
5
- 1. Array.prototype.keys
9
+ 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)
6
10
 
7
11
  2. Fisher-​Yatesアルゴリズムでシャッフル
8
12
 
@@ -10,4 +14,18 @@
10
14
 
11
15
 
12
16
 
17
+ - Array.prototype.keys() はイテレータを返すので、配列に変換する必要があります。また、イテレータ故に `[1,2,,4]` のような欠番要素を読み飛ばしてくれません。
18
+
19
+ - Object.keys() は配列の欠番を読み飛ばします。
20
+
21
+
22
+
23
+ ### 更新履歴
24
+
25
+
26
+
27
+ - 2019/02/16 11:42 イテレータの配列化処理が抜けていたので、Array.from() と Object.keys() を追記しました
28
+
29
+
30
+
13
31
  Re: williamsArk さん