[英]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.