質問するログイン新規登録

回答編集履歴

1

イテレータの配列化

2019/02/16 02:42

投稿

think49
think49

スコア18194

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 さん