1

その中で、使用している整数を介して反復するチェスアプリを作成しています。

for(var i =0; i<8; i++) { var ch = convertToCharector(i);  //using ch here...

しかし、私が好きなら、それは私にとってより適切でしょう

for(var ch='a';ch <= 'h';ch++){ // using ch directly... 

これにより可読性が向上します。

ただし、javascript では、メモリに整数として格納されないため、(for ループ ch++ での) char のインクリメントは不可能です。

これを達成するために何ができますか?

for(var ch='a';ch <= 'h';ch++){ // using ch directly...直接の方法は不可能ですか?3 番目の変数 str="abcdefgh" を使用する代わりに、str を使用します。

4

3 に答える 3

2

次のような方法でかなり近づくことができます。

for(var ch = 'a'.charCodeAt(0); ch <= 'h'.charCodeAt(0); ch++ ) {

しかし、読みやすさだけを求めている場合、上記が役立つかどうかはわかりません。次のような方が良いかもしれません:

var board = { a: 0, b: 1, c: 2, d: 3, e: 4, f: 5, g: 6, h: 7 };
for(var ch = board.a; ch <= board.h; ch++) {
}

パーサーが必要な場合は、次のようになります。

board.get = function(i) { return String.fromCharCode(97+i); }

...

board.get(board.a) // "a";
于 2013-04-02T09:46:04.773 に答える
1

次のように定義された文字列を使用できます。

chars = "abcdefgh";

次に、その文字列内の必要な文字をポイントします。

for (int i = 0; i < 8; i++) {
 canvas.drawText("" + chars.charAt(i), x, y * 30, Paint); // This draws the characters vertically
}

幸運を!

于 2013-04-02T09:46:29.947 に答える
0

このようにグローバル変数を定義できます

var _LETTERS_='abcdefgh',
    _A_=0,
    _B_=1,
    _C_=2,
    _D_=3,
    _E_=4,
    _F_=5,
    _G_=6,
    _H_=7;

そしてそれらをそのように使用します...

for(var i=_A_;i<=_H_; i++) { var j=_LETTERS_[i];
于 2013-04-02T09:48:58.650 に答える