JavaScript For循环在代码中的某一行之后不起作用

时间:2014-07-15 07:56:41

标签: javascript arrays for-loop split alert

我做了一个简单的练习,意味着在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
 }

注意:在代码的前几行中正确定义了变量和数组,我在之前的函数中使用它们执行相反的操作(将小数转换为二进制)并且工作正常。完成后,我确定要清理每个数组和变量。 (&#34; o&#34;用于对象,&#34; s&#34;用于字符串,&#34; a&#34;用于数组,&#34; i&#34;用于int&#39; s)

没有明显的语法错误。我希望不发布练习的解决方案,除非它确实是必要的,我可能还没有做到这一点,但我喜欢通过算法来思考我自己:p。我的问题是循环就好像条件不满足,它们只是被跳过。我使用Opera Next作为我的网络浏览器和&#34;检查元素&#34;控制台也不会显示任何错误。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

这应该是,

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++) 
你错了这个,&#34; LENGTH&#34;