generate bullet string
by Ben Clayton
JavaScript
var numstyle = ["","#","#.#","&)"];
function renumber(lvl,idx){
for(var i=1;i<3;i++){
doit(lvl,idx.concat(i));
if(lvl<3)renumber(lvl+1,idx.concat(i));
}
}
function doit(lvl,idx){
console.log(idx);
var m = numstyle[lvl],
x = idx.length-1,
s='';
for (var n=m.length-1;n>=0;n--){
//alert(m[n]);
if(x<0){
}else if(m[n] == '#'){
s= idx[x--] + s;
}else if(m[n] == '&'){
s=letter(idx[x--]) + s;
}else if(m[n] == '%'){
s=romanize(idx[x--]) + s;
}else{
s=m[n]+s;
}
}
console.log(s);
}
function letter(n){
var s='';
n--;
var x=0;
do{
s=String.fromCharCode(97 +x+ (n % 26))+s;
n=parseInt(n/26,10)-1;
x--;
} while (n>0)
return s;
}
function romanize (num) {
if (!+num)
return false;
var digits = String(+num).split(""),
key = ["","C","CC","CCC","CD","D","DC","DCC","DCCC", "CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"],
roman = "",
i = 3;
while (i--)
roman = (key[+digits.pop() + (i * 10)] || "") + roman;
return Array(+digits.join("") + 1).join("M") + roman;
}
console.log('--------');
for(var i=1;i<100;i++){
console.log(letter(i));
}
renumber(1,[]);
//var index2 = index.map(function(){});