function convert(num) { return Array.prototype.reduce.call(num.toString(),function(prev,curr,index,array){ return prev.concat([[0],[1],[1,1],[1,1,1],[1,5],[5],[5,1],[5,1,1],[5,1,1,1],[1,10]][curr].map(function(elem){ return elem*Math.pow(10,array.length-1-index); })); },[]).map(function(elem){ return ['M', 'D', 'C', 'L', 'X', 'V', 'I'][[1000,500,100,50,10,5,1].indexOf(elem)]; }).join(""); }