For循环:通过字符迭代 - Javascript [重复]
Posted
技术标签:
【中文标题】For循环:通过字符迭代 - Javascript [重复]【英文标题】:For Loop : Iterating via character - Javascript [duplicate] 【发布时间】:2013-03-23 13:19:13 【问题描述】:我正在编写一个国际象棋应用程序,通过我正在使用的整数进行迭代,
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。
【问题讨论】:
发帖前请先搜索 @LightnessRacesinOrbit 是的,我搜索过。function nextChar(c) return String.fromCharCode(c.charCodeAt(0) + 1); nextChar('a');
这将给出答案。但我已经只在convertToChar
这样做了。如果有的话,我想要一个直接的方法,而不是调用一个函数。
调用函数相当“直接”。
【参考方案1】:
您可以通过以下方式非常接近:
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";
【讨论】:
【参考方案2】:您可以使用定义为的字符串:
chars = "abcdefgh";
然后指向该字符串中所需的字符:
for (int i = 0; i < 8; i++)
canvas.drawText("" + chars.charAt(i), x, y * 30, Paint); // This draws the characters vertically
祝你好运!
【讨论】:
【参考方案3】:你可以像这样定义全局变量
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];
【讨论】:
以上是关于For循环:通过字符迭代 - Javascript [重复]的主要内容,如果未能解决你的问题,请参考以下文章
这种 for 循环迭代的替代方法是如何工作的? (Javascript)[重复]
JavaScript - 在 for 循环中使用 let 和 var 关键字声明迭代变量有啥区别? [复制]