回答編集履歴
1
DOMコレクションをHTMLCollectionに表記修正
answer
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
簡単です。
|
2
2
|
arrayに入っているのは、配列ではないですからです。
|
3
3
|
正しくは、DOMが入っている、配列のようなものです。
|
4
|
-
|
4
|
+
HTMLCollectionと言います。
|
5
5
|
なので、配列型のメソッドである、spliceが使えないのです。
|
6
|
-
ですが、
|
6
|
+
ですが、HTMLCollectionでも配列関数扱う方法はあります。
|
7
7
|
|
8
8
|
```javascript
|
9
9
|
[].splice.call(array, rand, 1);
|
10
10
|
```
|
11
11
|
|
12
12
|
ただし、これは実行エラーになります。
|
13
|
-
これは、arrayが、
|
13
|
+
これは、arrayが、HTMLCollection型変数で、これは配列の要素数を通常の配列と同じように、減らす、ということができないからです。
|
14
14
|
|
15
15
|
よって、要素を一個一個、配列変数に入れ直す必要があります。
|
16
16
|
|
@@ -23,4 +23,4 @@
|
|
23
23
|
```
|
24
24
|
|
25
25
|
これならば、splice関数を実行できます。
|
26
|
-
ただし、arrListはあくまで、配列変数となっているので、
|
26
|
+
ただし、arrListはあくまで、配列変数となっているので、HTMLCollectionメソッドは使うことはできません。
|