2017-11-17 7 views
0

私はハングマンゲームを書いていますが、それはうまくいっていますが、この変数のブロックは実際にはかなり醜いです。私がPHPで何かしたことは、私が必要としているすべての変数を配列に入れ、それらをポンピングしたところです。 DOM要素を取得しながらJavascriptでこれを達成する方法はありますか?javascript変数を宣言するためのよりエレガントな方法はありますか?

let _ = []; 
let correct = []; 
let wrong = []; 
let underscores = document.querySelector('.underscores'); 
let correctBlock = document.querySelector('.correct'); 
let wrongBlock = document.querySelector('.wrong'); 
let scoreBlock = document.querySelector('#score'); 
let btn = document.querySelector('.btn'); 
let hint = document.querySelector('.hint'); 
+0

'let a = 1、b = 2、... 'で変数を宣言して、' let'を繰り返さないようにすることができます。 –

+0

PHPで 'register_globals($ array)'について話していますか? JSのようなものは何もなく、PHPでも一般的に使われていません。 – Barmar

答えて

2

を、私はあなたがPHPでダブル$に言及していると思いますか? (それはしばらくしていた)

いいえ、申し訳ありません。

私はあなたが含まれているものを維持するためのマップを作成してお勧め:

let score = { 
    _: [], 
    correct: [], 
    wrong: [] 
} 

let blocks = { 
    underscores: document.querySelector('.underscores'), 
    correct: document.querySelector('.correct'), 
    wrong: document.querySelector('.wrong'), 
    score: document.querySelector('#score') 
} 

let btn = document.querySelector('.btn'); 
let hint = document.querySelector('.hint'); 

は使用方法:本当に

+0

これはまさに私が探していたものです!本当にありがとう。どうして私が笑ったのか分かりません。これはもっとエレガントに見えます。 –

+0

そうです。幸せを助けるために:) – Phix

+1

これはいいです、ブロックの外で、ええと、私は、ボックスを意味するとは思わなかった。 OPはよりエレガントで、簡潔な解決策ではないので、ここにはそれがあります。 –

1

あなたが得ることができるでしょう最短は次のとおりです。

let _ = [], 
    correct = [], 
    wrong = [], 
    underscores = document.querySelector('.underscores'), 
    correctBlock = document.querySelector('.correct'), 
    wrongBlock = document.querySelector('.wrong'), 
    scoreBlock = document.querySelector('#score'), 
    btn = document.querySelector('.btn'), 
    hint = document.querySelector('.hint'); 

私はあなたが選択している要素がすべて異なっているとして、これを圧縮/一般化する方法を見ることはできません。正直、これは大丈夫です!

+0

Oliverありがとうございます。私はすべてを配列に入れれば素敵に見えると思っていましたが、私はそれが不可能だと考えています。更新されたブロックありがとう! –

0

たとえば、静的変数を宣言します。関数、のconstキーワード(の代わりに)の要素への参照。代わりに聞かせて/ constキーワードを繰り返す 、ちょうどcomma operators使用:

const underscores = document.querySelector('.underscores'), 
     correctBlock = document.querySelector('.correct'), 
     wrongBlock = document.querySelector('.wrong'); 

など

1

ありません。私はコントロールを構造体にグループ化するのが好きですが、その優れたことは言えません。

let ctrls = { 
    underscores: document.querySelector('.underscores'), 
    correctBlock: document.querySelector('.correct') 
}; 
1

パラレル割り当てでマップすることができます。より短いですが、私は個人的にはそうしません。

+0

面白い!私はそれが好きです。 – Phix

関連する問題