繁体   English   中英

有人可以告诉我此javascript有什么问题吗?

[英]Can someone tell me what's wrong with this javascript?

我在这里尝试进行实验,请回答,这段代码有什么问题?

function run(){
 for(var i=0;i<arguments.length;i++){
  var type=arguments[i].split(" ")[0];
   if(type=="(write)"){
    var arr=arguments[i].split(" ");
    var str=[];
    for(var i=1;i<arr.length;i++){
     str.push(arr[i]);
    }
    var fin="\n"+str.join(" ");
    document.getElementById("console").textContent+=fin;
   }
  }
 }
run(
 "(write) I wonder if this works.",
 "(write) I think it DOES!"
);

不知何故,它只显示“我想知道这是否有效”。 在div中,但没有“我认为是!”。 有人可以告诉我怎么了,然后返回更正的脚本吗?

JavaScript没有代码块范围..将其他变量更改为其他内容

您正在两次使用for循环的i变量。 Javascript具有功能范围和块范围。 因此在第二个“ for”中使用不同的变量(可能是aj);

for(var j=1;j<arr.length;j++){
     str.push(arr[j]);
    }
function run(){


  for(var i=0;i<arguments.length;i++){


    var type=arguments[i].split(" ")[0];
    if(type=="(write)"){
      var arr=arguments[i].split(" ");

      var str=[];

      //here your i was increamented twice so loop excuted only once
      for(var j=1;j<arr.length;j++){
       str.push(arr[j]);
     }


     var fin="\n"+str.join(" ");
     console.log(fin);
     document.getElementById("console").textContent+=fin;
   }
 }
}
run(
 "(write) I wonder if this works.",
 "(write) I think it DOES!"
 );

循环更改i

for (var i = 1; i < arr.length; i++){
    str.push(arr[i]);
}

通过其他方式或在es6中使用let来定义i。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM