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

回答編集履歴

2

補足を追加

2020/06/25 23:15

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -1,7 +1,9 @@
1
1
  ええと、cansellRowは、提示されている表だと5行分得られますね。
2
- 2行目から比較していくので、2行目から5行分、つまり**7行目より小さい間**forループを回さないと行けません。
3
- そして、cansellRowの要素を取り出すときには、行番号が入っている`i`をそのまま使うのではなく、**cansellRowの先頭(添え字0)から取り出せる**ように、`i - 2`としなければなりません。
4
2
 
3
+ 2行目から比較していくので、2行目から5行分、つまり**7行目より小さい間**forループを回さないといけません。提示されたコードだと、2行目から5行目より小さい間ループしているので、4行目までしか処理されないのです。
4
+
5
+ そして、cansellRowの要素を取り出すときには、行番号が入っている`i`をそのまま使うのではなく、**cansellRowの先頭(添え字0)から取り出せる**ように、`i - 2`としなければなりません。そのまま`i`を使っているので、cansellRow[2]~cansellRow[4]だけが使われ、これらはすべて「◎」の範囲の日付なのです。
6
+
5
7
  ```JavaScript
6
8
  for(var i = 2; i < cansellRow.length + 2; i++) {
7
9
  var cansellrow =new Date(cansellRow[i - 2]);

1

誤字を修正

2020/06/25 23:15

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -7,6 +7,6 @@
7
7
  var cansellrow =new Date(cansellRow[i - 2]);
8
8
  ```
9
9
 
10
- 本当は、`i`を行番号ではなく0からcansellRowのlength分ループさせて、getRangeのほうを調整したほうがわかりやすそうですが、修正箇所が多くなってしまので。
10
+ 本当は、`i`を行番号ではなく0からcansellRowのlength分ループさせて、getRangeのほうを調整したほうがわかりやすそうですが、修正箇所が多くなってしまので。
11
11
 
12
12
  追伸: キャンセルの綴りは**cancel**です。