Reputation: 690
I'm trying to convert numbers into letters. I'm making an array of divs that either need a number or a number and letter. so 1-3 are just 1-3. but 4-13 need to be a/4, b/5, c6 and so on. is there a way I can converts these numbers into letter easily. maybe changing the ascii values by a set amount?
for(var i = 1; i < 33; i++){
if( i < 4 || (i > 13 && i < 20) || i > 29){
$('#teeth-diagram').append("<div class='tooth' id='" + i + "'> </div>");
}else{
$('#teeth-diagram').append("<div class='tooth' id='" + Letter goes here + "/" + i + "'> </div>");
}
}
Upvotes: 24
Views: 50304
Reputation: 10222
You can use the String.fromCharCode(x)
function for this, you just need
to pass the proper index (eg: 97 = a, 98 = b)
const numberA = 1; // 1 = A, 2 = B,...., 26 = Z
const numberB = 2;
//lowercase (start in CharCode 97)
console.log( String.fromCharCode(96 + numberA) ); //a
console.log( String.fromCharCode(96 + numberB) ); //b
console.log("------------");
//uppercase (start in CharCode 65)
console.log( String.fromCharCode(64 + numberA) ); //A
console.log( String.fromCharCode(64 + numberB) ); //B
Upvotes: 7
Reputation: 3815
since 97 is the ascii value for 'a', and your value for 'a' is 3, you need to do this to get the value of the integer converted to a character:
if(i>=3){
String.fromCharCode(94 + i);
}
Upvotes: 57
Reputation: 2060
Yes, you can. Use var letter = String.fromCharCode(number);
To get a lowercase a, the number would be 97, b would be 98 and so forth. For uppercase A 65, B would be 66 and so forth.
See this JSFiddle for an example
Upvotes: 29