【週刊ドットインストール】 考える力を養うための新クラス『データで学ぶアルゴリズム』を256timesでリリース!
下記の箇所について疑問があります。
if (e.key === word[loc]) { loc++; if (loc === word.length) { word = words[Math.floor(Math.random() * words.length)]; loc = 0; } updateTarget();
この記述のところで、
if (loc === word.length) { word = words[Math.floor(Math.random() * words.length)]; loc = 0; }
と、
updateTarget();
の順序が逆になると、新しいwordに変更されなくなってしまいます。 つまり、
if (e.key === word[loc]) { loc++; updateTarget(); if (loc === word.length) { word = words[Math.floor(Math.random() * words.length)]; loc = 0; }
こういった状態です。
updateTarget();内で、locの値が変わっているわけではないと思いますし、問題ないのかと思ったのですが・・・。
なぜ、このようなことが起こってしまうのでしょうか? よろしくお願いします。
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
下記の箇所について疑問があります。
この記述のところで、
と、
の順序が逆になると、新しいwordに変更されなくなってしまいます。
つまり、
こういった状態です。
updateTarget();内で、locの値が変わっているわけではないと思いますし、問題ないのかと思ったのですが・・・。
なぜ、このようなことが起こってしまうのでしょうか?
よろしくお願いします。