我是在 Javascript 中研究罗马数字 Kata 的新手。所有规格都通过了。我已经重构了规范文件,现在正在尝试重构主文件。
以前的样子是这样的:
function roman(number) {
var conversion = ''
if (number == 100){
conversion += 'C'
number -= 100
}
// omitted code
while (number >= 1){
conversion += 'I'
number -= 1
}
return conversion
}
现在看起来像这样:
function roman(number) {
var denominations = {
100: 'C',
// omitted code
5: 'V',
4: 'IV',
1: 'I'
}
var conversions = ''
_.each(denominations, function(roman_num, natural_num) {
while (number >= natural_num){
conversions = conversions + roman_num
number -= natural_num
}
})
return conversions
}
我花了一些时间通过 Chrome 使用 JS 控制台进行调试,它看起来不像迭代每个面额,而是卡在 1 上。
我也在使用 Jasmine,所以我的错误如下所示:
Expected 'IIII' to equal 'IV'
Expected 'IIIII' to equal 'V'
等等。
所以我的问题是: 1. 为什么只返回 1、'I' 和 2 的值会卡住。我该如何解决?
提前致谢!