在我的es6编译器中,我正在处理一个函数,该函数将任何二进制数字转换为基-10数字。基本上,1和0都默认为1。
这个项目仅仅是一个12岁的孩子的乐趣(我),所以,如果有其他人有他们的工作,不要着急。无论如何,我发现问题在于当您输入二进制数字时,存储在convertedNumQuery中的数字以某种方式默认为1,即使这个数字是0。我在任何地方都试过调试,但可能只是因为我是个新手>.<
var numQuery = prompt("Enter a binary number to convert to base-10! Don't leave the \"0b\" in there.").split("");
var binaryChart = [1];
var convertedNumQuery = numQuery.map(Number);
var base10 = 0;
console.log(convertedNumQuery+ "\n");
for (var i = 0; i < (numQuery.length - 1); i++) {
binaryChart.unshift(binaryChart[0]*2);
console.log(binaryChart);
}
console.log(convertedNumQuery);
console.log("\n convertedNumQuery is array: " + Array.isArray(convertedNumQuery));
for (var i = 0; i < convertedNumQuery.length; i++ ) {
if (convertedNumQuery[i] = 1) {
base10 += binaryChart[i];
console.log(convertedNumQuery[i]);
}
}
console.log(base10);假设我想转换的二进制数是101010,或者42。预期的结果( 42 )应该存储在base10中,但最终发生的是将binaryChart中的每个数字加到63中。更奇怪的是,当我在第15行convertedNumQuery中看到console.log(convertedNumQuery[i]);时,这个数组作为所有1s记录在控制台中。
发布于 2019-02-05 22:32:12
https://stackoverflow.com/questions/54543936
复制相似问题