Estoy generando alfabetos usando sus valores ascii. Tengo un bucle for como este

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;

Entonces, cuando proporciono esto, obtengo una matriz con el resultado [A.B, C .... Z]. Ahora lo que quiero es después de presionar los 26 alfabetos que quiero [AA, AB, AC ... AZ]. ¿Cómo es esto posible?

-1
Aysha Azura 12 may. 2016 a las 13:49

4 respuestas

La mejor respuesta

Esto podría ser lo que buscas:

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;

Puede consultar un ejemplo en ejecución aquí: https://jsfiddle.net/xr5dwLu1/1/

2
Filype 12 may. 2016 a las 11:25

Simplemente agregue otro bucle dentro de su bucle inicial:

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

}
1
whostolemyhat 12 may. 2016 a las 11:07

¡Sí lo es! Intenta anidar bucles:

for(var i=65;i<=90;i++){
    for(var j=65;j<=90;j++){
        res = String.fromCharCode(i) + String.fromCharCode(j);
        alpha.push(res);
    }
}

Actualización: después de su edición, parece que lo que solicita es simplemente:

for(var i=65;i<=90;i++) {
        res = 'A' + String.fromCharCode(i);
        alpha.push(res);
    }
}
0
Jordi Nebot 12 may. 2016 a las 11:08

Solución ES6 con un generador.

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>');
0
Nina Scholz 12 may. 2016 a las 11:36