带有生成器的ES6解决方案。
我正在使用它们的ascii值生成字母表。我有一个像这样的for循环
var alpha = [];
for(var i=65;i<=90;i++){
res = String.fromCharCode(i);
alpha.push(res);
}
document.getElementById("demo").innerHTML = alpha;
for(var i=65;i<=90;i++){
res = String.fromCharCode(i);
alpha.push(res);
}
document.getElementById("demo").innerHTML = alpha;
所以当我提供这个时,我得到了一个结果为[A.B,C.…Z]的数组。现在我想要的是推完我想要的所有26个字母[AA,AB,AC…AZ]。这怎么可能?
这可能就是您想要的:
var alpha = [];
for(var i=65;i<=90;i++){
alpha.push(String.fromCharCode(i));
}
for(var i=65;i<=90;i++){
var first = 'A';
var next = String.fromCharCode(i);
alpha.push(first + next);
}
document.getElementById('demo').innerHTML = alpha;
您可以在此处查看一个运行示例:https://jsfiddle.net/xr5dwLu1/1/
只需在初始循环中添加另一个循环:
for(var i=65;i<=90;i++){
// add new loop with different variable for index (j)
for(var j = 65; j <= 90; j++) {
var res = String.fromCharCode(i) + String.fromCharCode(j);
alpha.push(res);
}
}
是的!尝试嵌套循环:
for(var i=65;i<=90;i++){
for(var j=65;j<=90;j++){
res = String.fromCharCode(i) + String.fromCharCode(j);
alpha.push(res);
}
}
更新:编辑后,我看起来你想要的只是:
for(var i=65;i<=90;i++) {
res = 'A' + String.fromCharCode(i);
alpha.push(res);
}
}
function* abc(pre){
var i = 10;
while(i < 36) {
yield pre + i.toString(36).toUpperCase();
i++;
}
}
let array = [...abc('A')];
document.write('<pre>' + JSON.stringify(array, 0, 4) + '</pre>');