Skip to content

Instantly share code, notes, and snippets.

@folksilva
Created April 16, 2013 17:11
Show Gist options
  • Save folksilva/5397672 to your computer and use it in GitHub Desktop.
Save folksilva/5397672 to your computer and use it in GitHub Desktop.
Função recursiva que retorna letras em sequência. Ex.: A, B, C ... AA, AB, AC ... AAA, AAB, AAC ...
/**
* getLetra - Função que retorna as letras em sequência
* @author Luiz Fernando da Silva <lfsilva@sccorinthians.com.br>
*
* Este trabalho está licenciado sob uma Licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada.
* Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-sa/3.0/.
*
*/
var getLetra = function(i) {
// Define a lista de letras (A-Z)
var chars = [];
for ( var c = 65; c < 91; c++ ) {
chars.push(String.fromCharCode(c));
}
// Está dentro da lista de caracteres?
if ( i < chars.length ) {
return chars[i]; // Retorna a letra
} else { // É maior que a lista de caracteres
var j = i % chars.length;
i = Math.floor(i / chars.length) - 1;
return getLetra(i) + getLetra(j); // Retorna a sequencia de letras
}
};
// Exemplos de uso:
// Retornar de A a Z
for ( var i = 0; i < 26; i++ ) {
console.log( i + ": " + getLetra(i) );
}
// Retornar 1000 sequencias sem repetir
for ( var i = 0; i < 1000; i++ ) {
console.log( i + ": " + getLetra(i) );
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment