質問: javascriptで配列の中身を1つずつ順番に待機時間を挟んで表示させようとトライしています。例えば配列の1つ目を表示させる。2秒後に2つ目を別の場所に表示させる。次に2秒後に、これら2つを消して、あとはこの繰り返し(表示→消す→表示→消す、、、) このとき、配列の中身の数だけ繰り返すためにfor 文をいれたのですが、うまくいきません。2秒の待機時間があるからでしょうか? どこが原因なのか、是非教えてください。宜しくお願いします。 jsfiddleにコードを書きました。
回答: 現在のコードでは 1. ループを開始する 2. それぞれのタイマーを3回呼び出す 3. iの値が3になり、ループを抜ける 4. data[3] (4の内容)、data[3+1] (5の内容)を3度表示させる 5. setTimeoutにより文字が消える という挙動になっています。 書くタイミングと消すタイミングを分けて考えると良いでしょう。 ※一例となります。 q.hatena.ne.jp/1498712865 - JSFiddle