var number = prompt('Enter Number (as long as you want): '),
output = [],
sNumber = number.toString(),
lastDigit,
result,
i;
function result(number) {
for (i = 0, len = sNumber.length; i < len; i += 1) {
output.push(+sNumber.charAt(i));
}
lastDigit = output.slice(-1);
switch (lastDigit[0]) {
case 0:
return 'zero';
break;
case 1:
return 'one';
break;
.....etc some more cases.......
default: return 'not a valid number';
break;
}
}
jsConsole.writeLine('Last digit in English: ' + result);
为什么结果会以所有代码结束而不是其中一个切换案例?我一直在努力解决这个问题。我只想打开开关盒中的结果。
答案 0 :(得分:3)
number
参数,请使用它,不要使用全局变量break
return
prompt
将返回一个字符串,因此不需要toString()
像这样:
var sNumber = prompt('Enter Number (as long as you want): ');
function result(number) {
var output = [];
for (var i = 0; i < number.length; i ++) {
output.push(+number.charAt(i));
}
var lastDigit = output.slice(-1);
switch (lastDigit[0]) {
case 0:
return 'zero';
case 1:
return 'one';
default:
return 'not a valid number';
}
}
jsConsole.writeLine('Last digit in English: ' + result(sNumber));
为了您的信息,您可以获得没有循环的字符串的最后一个字符:
var lastDigit = number[number.length-1];
// assuming it will always have at least 1 character, add validation to be sure
答案 1 :(得分:0)
你实际上并没有调用结果。
要调用结果,您应该这样做:
result()
没有括号,你就意味着结果的价值实际上是一个函数。
如果你还将它连接到一些字符串,输入强制使你最终得到与你一样的结果:
jsConsole.writeLine('Last digit in English: ' + result.toString());