Hangman ゲームについては、いくつかのテーマがあります (例: 都市と動物)。
ユーザーがテーマの 1 つを選択すると、結果は選択したテーマからランダムなアイテムの 1 つになるはずです。例: ロンドンや横断歩道など。
現在、選択したテーマにはランダムな文字しかありません。
リーリー リーリー
既存のコードでは、topicsEl.value は文字列「cities」または文字列「animals」になります (これらはオプションの <select> 値であるためです)。 )。これらの は JavaScript で定義する グローバル変数ではなく、HTML 内に含まれる単なる文字列です。
topicsEl.value
<select>
次に、randomTopic() で、文字列に配列としてアクセスすると、JavaScript はそれを、扱いたい文字列内の文字の配列として解釈します。そのため、単語からランダムな文字が得られます。"animals"[0] は文字 a、"animals"[1] は文字 n などとなります。
randomTopic()
"animals"[0]
"animals"[1]
あなたが試行するのは、「city」と「animal」という名前を付けた配列変数からランダムな項目を選択することですが、関数はそれらの変数を操作しようとするのではなく、含まれている文字列に作用するだけです。 DOM内で。
<select> の文字列値を取得するステップを追加する必要があります。
の文字列値を取得するステップを追加する必要があります。
window.cities または window.animals としてアクセスできるため、次のように実行できます。 value] これにより、アクセスしようとしている配列が返されます。ただし、ウィンドウのグローバル変数に依存するのはあまり良い習慣ではないため、別々の変数のペアを 1 つのオブジェクトに切り替えることをお勧めします。
または
としてアクセスできるため、次のように実行できます。 value]
選択に基づいてリストのランダムな値を取得するのに問題があるようです。
現在、関連するトピック リストのランダムな要素ではなく、topicsEl.value のランダムな 文字 を選択しています。
topicsEl.value に基づいてどのリストを選択するかを決定する必要があります。これは、値がキーとして使用できる場合 (例: dictionary の場合) 動的に実現できますが、静的に行うこともできます。
ただし、静的実行では、新しいトピック リストごとに if-else-if ラダーが増加するなど、重複コード が生成されます。 リーリー
このリストでランダムな項目を選択することは、現在ランダムな文字を選択する方法と似ています:
既存のコードでは、
topicsEl.value
は文字列「cities」または文字列「animals」になります (これらはオプションの<select>
値であるためです)。 )。これらの は JavaScript で定義する グローバル変数ではなく、HTML 内に含まれる単なる文字列です。次に、
randomTopic()
で、文字列に配列としてアクセスすると、JavaScript はそれを、扱いたい文字列内の文字の配列として解釈します。そのため、単語からランダムな文字が得られます。"animals"[0]
は文字 a、"animals"[1]
は文字 n などとなります。あなたが試行するのは、「city」と「animal」という名前を付けた配列変数からランダムな項目を選択することですが、関数はそれらの変数を操作しようとするのではなく、含まれている文字列に作用するだけです。 DOM内で。
したがって、アクセスしようとしている配列に<select>
両方の配列をグローバル変数として定義しました。理論的には、これらはの文字列値を取得するステップを追加する必要があります。
window.cities
## リーリー リーリーまたは
window.animalsとしてアクセスできるため、次のように実行できます。 value]
これにより、アクセスしようとしている配列が返されます。ただし、ウィンドウのグローバル変数に依存するのはあまり良い習慣ではないため、別々の変数のペアを 1 つのオブジェクトに切り替えることをお勧めします。選択に基づいてリストのランダムな値を取得するのに問題があるようです。
現在、関連するトピック リストのランダムな要素ではなく、
topicsEl.value
のランダムな 文字 を選択しています。topicsEl.value
に基づいてどのリストを選択するかを決定する必要があります。これは、値がキーとして使用できる場合 (例: dictionary の場合) 動的に実現できますが、静的に行うこともできます。ただし、静的実行では、新しいトピック リストごとに if-else-if ラダーが増加するなど、重複コード が生成されます。 リーリー
これを行うと、リストの選択が動的に抽象化され、機能がシンプルになります。前に提案したように、この目的には辞書を使用できます。このリストでランダムな項目を選択することは、現在ランダムな文字を選択する方法と似ています:
リーリー