问题5.数字为数字
编写一个要求数字(0-9)的脚本,并根据输入将数字显示为单词(英文)。 输入无效时打印“非数字”。 使用switch语句。 例子:
digit result
2 two
1 one
0 zero
5 five
-0.1 not a digit
hi not a digit
9 nine
10 not a digit
=
这是我的JavaScript和HTML HTML:
<input type="text" id="textInput">
<button id="react">Check</button>
<p id="result"></p>
我的JavaScript:
document.addEventListener("DOMContentLoaded",function(){
var input = document.getElementById('textInput');
var button = document.getElementById('react');
var result = document.getElementById('result');
button.addEventListener('click',function(){
switch (input.value) {
case 0:
result.innerHTML = 'zero';
break;
case 1:
result.innerHTML = 'one';
break;
case 2:
result.innerHTML = 'two';
break;
case 3:
result.innerHTML = 'three';
break;
case 4:
result.innerHTML = 'four';
break;
case 5:
result.innerHTML = 'five';
break;
case 6:
result.innerHTML = 'Six';
break;
case 7:
result.innerHTML = 'Seven';
break;
case 8:
result.innerHTML = 'Eight';
break;
case 9:
result.innerHTML = 'Nine';
break;
default:
result.innerHTML = 'not a digit';
break;
}
});
});
问题是当我输入一个0-9的数字时,它会显示默认语句。
答案 0 :(得分:7)
value
是字符串格式。将其转换为数字,因为switch
语句不强制类型(与if
语句不同)
switch(+input.value) {
OR
switch(parseInt(input.value, 10)) {
我还建议使用数组或对象。
var arr = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
result.innerHTML = arr[+input.value] || 'Not a Digit';