对于循环-在循环内部循环,用于获取带有ascii值的字母表



我正在使用它们的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);
    }
}
带有生成器的ES6解决方案。

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>');

最新更新