有人写了这个(非常可怕的)函数来将数值从0-999转换为英文单词。为什么这个Javascript数组中的单元格错误?
function getNumberWords(number) {
var list = new Array(1000);
list[000] = "zero";
list[001] = "one";
list[002] = "two";
list[003] = "three";
///skip a few
list[099] = "ninety nine";
list[100] = "one hundred";
list[101] = "one hundred and one";
///skip a few more
list[997] = "nine hundred and ninety seven";
list[998] = "nine hundred and ninety eight";
list[999] = "nine hundred and ninety nine";
return list[number];
}
在这里有一些相当奇怪的错误,我似乎无法找出原因。一些但不是全部的元素被放置在错误的单元格中。
我试图显示列表的contentes,它表现出了相当时髦结果:0-7有预期值
> list.toString();
"zero,one,two,three,four,five,six,seven,ten,eleven,twelve,thirteen,fourteen,
fifteen,sixteen,seventeen,twenty,twenty one,twenty two,twenty three,twenty four,
twenty five,twenty six,twenty seven,thirty,thirty one,thirty two,thirty three,
thirty four,thirty five,thirty six,thirty seven,forty,forty one,forty two,"
///(skip a few)
"sixty six,sixty seven,seventy,seventy one,seventy two,seventy three,seventy four,
seventy five,seventy six,seventy seven,,,,,sixty eight,sixty nine,,,,,,,,,
seventy eight,seventy nine,eighty,eighty one,eighty two,eighty three,eighty four,"
///(and so on)
也就是说,元素。要素68,69和78-999也具有期望值。元素64-67和70-77是空的。元素8-63具有不正确的值。
这个世界正在发生什么?为什么15个单元格为空,56个单元格不正确,其余部分是否正确?
'22'八进制十进制实际上'18'是,但它是十九元,因为数组是零索引。 –
@Peter:哈,哦,是啊,当然;) –