【发布时间】:2023-03-07 17:35:01
【问题描述】:
我正在做一个简单的练习,旨在使用 JavaScript,包括将二进制转换为其各自的十进制值...我觉得我即将完成该项目,但由于某种原因,我的 for 循环在某行。
//function is called after the press of a button
function convertToBinary (){
oText= document.all?document.all("inout"):document.getElementById("inout");
//inout represents a textarea
sText= oText.value;
alert(sText);
aText = sText.split(/\n\r|\n|\r/g); //got this line after searching this site for solutions
/*alert(aText[1]);
alert(aText[2]);
alert(aText[3]);*/
aText 确实存储了值,检查了一千次,但是在这条线之后一切都变了,我似乎找不到原因。这是从我的文本编辑器复制/粘贴的其余代码。
for(y = 0; y < aText.lenght;y++){
alert(aText[y]);
}
iCurrent=0;
aBina= aText[0].split("");
for(var x = aBina.lenght-1; x >= 0; x--){
iCurrent = (iCurrent*2) + parseInt(aBina[x]);
alert(iCurrent);
}
aAsci[0]=iCurrent;
alert(iCurrent); //Alerts 0
}
注意:变量和数组在代码的前几行中已正确定义,我在之前的函数中使用了它们,该函数执行相反的操作(将小数转换为二进制)并且效果很好。我确定在函数完成后清理每个数组和变量。 (“o”代表对象,“s”代表字符串,“a”代表数组,“i”代表整数)。
没有明显的语法错误可见。除非确实有必要,否则我将不胜感激不发布练习的解决方案,我可能还没有做对,但我喜欢自己思考算法:p。我的问题是 for 循环好像没有满足条件,它们只是被跳过了。我使用 Opera Next 作为我的网络浏览器,“检查元素”控制台也没有显示任何错误。
提前谢谢你。
【问题讨论】:
-
您在
lenght中有错字。应该是length。是在真实代码中还是这里的复制错误? -
等你说“二进制转换成它各自的十进制值。” 但是你的函数名是convetToBinary?你要去哪条路?如果要获得小数,您可以使用基数 2 调用 parseInt,除非这是为了学习如何手动操作。
-
@Barmar G 我累了...这是拼写错误...我现在就去睡觉。
标签: javascript arrays for-loop split alert