【发布时间】:2019-08-04 19:22:24
【问题描述】:
我无法弄清楚我做错了什么导致我的 for 循环无法通过我的长度。我正在尝试使用用户输入将二进制转换为十进制,但它不起作用。我有的是
已编辑
var val = $("txtIn").value;
if (cT[1].checked) {
var bVal = val;
if (isNaN(bVal)) {
alert(val + " is not a number. A number is required to run the program.");
} else if ((val % 1) !== 0) {
alert(val + " is not an integer. A whole number is required to run the program.");
} else if (bVal < 0) {
alert(val + " is not able to convert. Input must be positive integer.");
} else {
convertByArrayB(bVal);
}
}
function convertByArrayB(bVal) {
var r, i, j;
for (i = 0; i < bVal.length; i++) {
r = bVal.charAt(i);
if (r !== '1' && r !== '0') {
alert("You did not enter a valid binary number. Please try again!");
}
var nv = parseInt(r, 2);
}
$("txtOut").value = nv;
}
我认为您不需要顶部部分,但安全总比抱歉好。预先感谢您的任何帮助。 (爱这个社区顺便说一句)
【问题讨论】:
-
请修正您的代码。 JavaScript 字符串中不能有换行符。
-
您正在循环内重新分配
bVal = nv。 -
之后,
bVal.length未定义。 -
你的牙套不平衡。第一个
if没有}。 -
r[i]应该是什么?r是bVal的当前字符。
标签: javascript binary decimal converters