我正在写一个国际象棋应用程序,通过我正在使用的整数进行迭代,
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中,char(在for循环ch ++中)的增量是不可能的,因为它们不会作为整数存储在内存中。
我能做些什么来实现这个目标?
for(var ch='a';ch <= 'h';ch++){ // using ch directly...
是否无法以直接的方式进行?而不是使用第三个变量str =“abcdefgh”,然后使用str。
答案 0 :(得分: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";
答案 1 :(得分:1)
您可以使用定义为:
的字符串chars = "abcdefgh";
然后指向该字符串中所需的字符:
for (int i = 0; i < 8; i++) {
canvas.drawText("" + chars.charAt(i), x, y * 30, Paint); // This draws the characters vertically
}
祝你好运!
答案 2 :(得分: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];