Roman numeral conversion added
This commit is contained in:
parent
d1bc9711dd
commit
8ce0871e4e
3 changed files with 22 additions and 2 deletions
20
app.js
20
app.js
|
@ -53,11 +53,29 @@ var App = new Vue({
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts Integer to Roman Numerals
|
* Converts Integer to Roman Numerals
|
||||||
|
* Inspired by many stackOverflow roman numeral conversions
|
||||||
* @param {[number]} n [whole number to be converted]
|
* @param {[number]} n [whole number to be converted]
|
||||||
* @return {[string]} [roman numeral conversion of provided whole number]
|
* @return {[string]} [roman numeral conversion of provided whole number]
|
||||||
*/
|
*/
|
||||||
function intToRoman(n) {
|
function intToRoman(n) {
|
||||||
return n + 'TODO';
|
// Set up mapping to compare crucial roman numerals to their integet values
|
||||||
|
var mapping = {
|
||||||
|
'M': 1000, 'CM': 900, 'D': 500, 'CD': 400, 'C': 100,
|
||||||
|
'XC': 90, 'L': 50, 'XL': 40, 'X': 10, 'IX': 9, 'V': 5, 'IV': 4, 'I': 1
|
||||||
|
},
|
||||||
|
// Placeholder result array. Could also just be a string we append too, but it feels nicer to work with an object and an array
|
||||||
|
result = [];
|
||||||
|
// Loop through each roman numeral
|
||||||
|
_.forEach(mapping, function(int, rom) {
|
||||||
|
// So long as the intToRoman (n) param is greater than the current symbol's matching int...
|
||||||
|
while(n >= int) {
|
||||||
|
// Add the current symbol to our results array
|
||||||
|
result.push(rom);
|
||||||
|
// Take the value of the current symbol's int and subtract it from 'n'. This may happen multiple times, such as "20" becoming "XX"
|
||||||
|
n -= int;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return result.join('');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"vue": "~1.0.4",
|
"vue": "~1.0.4",
|
||||||
"bootstrap": "~3.3.5",
|
"bootstrap": "~3.3.5",
|
||||||
"bootstrap-material-design": "~0.3.0"
|
"bootstrap-material-design": "~0.3.0",
|
||||||
|
"lodash": "~3.10.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,6 +68,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="bower_components/vue/dist/vue.min.js"></script>
|
<script src="bower_components/vue/dist/vue.min.js"></script>
|
||||||
|
<script src="bower_components/lodash/lodash.min.js"></script>
|
||||||
<script src="bower_components/jquery/dist/jquery.min.js"></script>
|
<script src="bower_components/jquery/dist/jquery.min.js"></script>
|
||||||
<script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
|
<script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue