タイトルのリライト: 値の選択と変数の割り当ての問題のトラブルシューティング
P粉596161915
P粉596161915 2024-03-30 10:19:52
0
2
492

Hangman ゲームについては、いくつかのテーマがあります (例: 都市と動物)。

ユーザーがテーマの 1 つを選択すると、結果は選択したテーマからランダムなアイテムの 1 つになるはずです。例: ロンドンや横断歩道など。

現在、選択したテーマにはランダムな文字しかありません。

リーリー リーリー

P粉596161915
P粉596161915

全員に返信(2)
P粉691461301

既存のコードでは、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 つのオブジェクトに切り替えることをお勧めします。

## リーリー リーリー

いいねを押す +0
P粉696605833

選択に基づいてリストのランダムな値を取得するのに問題があるようです。

現在、関連するトピック リストのランダムな要素ではなく、topicsEl.value のランダムな 文字 を選択しています。

topicsEl.value に基づいてどのリストを選択するかを決定する必要があります。これは、値がキーとして使用できる場合 (例: dictionary の場合) 動的に実現できますが、静的に行うこともできます。

ただし、静的実行では、新しいトピック リストごとに if-else-if ラダーが増加するなど、重複コード が生成されます。 リーリー

これを行うと、リストの選択が動的に抽象化され、機能がシンプルになります。前に提案したように、この目的には辞書を使用できます。

たとえば、辞書の各属性がトピックのリストである場合、オプションの値は対応する属性の名前と一致する必要があります。 リーリー

このリストでランダムな項目を選択することは、現在ランダムな文字を選択する方法と似ています:

リーリー

個人的には、インデックスの生成が別の関数内にある場合、このランダムな選択はより読みやすいと思います。例: ###

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート