【问题标题】:JavaScript For loop not working after a certain line in the codeJavaScript For循环在代码中的某一行之后不起作用
【发布时间】: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


【解决方案1】:

应该是这样的,

for(y = 0; y < aText.length;y++) 

还有这个

for(var x = aBina.length-1; x >= 0; x--){

改为

for(var x = aBina.lenght-1; x >= 0; x--){
 for(y = 0; y < aText.lenght;y++) 

你拼错了,“LENGTH”

【讨论】:

  • 你没有修正第一个拼写错误:)
  • 错过了,抱歉。
猜你喜欢
  • 2018-01-26
  • 2015-07-04
  • 2022-12-10
  • 1970-01-01
  • 2021-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多