这个功能的结果是:" yoyo我的兄弟"。
为什么哟只在第一次迭代时添加,为什么结果不是:" yoyo yomy yobrother"?
function myFunction() {
var cars = ["yo", "my", "brother"];
var i = 2;
var len = cars.length;
var text = "yo";
for (; i < len; i++) { //typo, var i=0;
text += cars[i]+ " ";
}
};
哦,sry,我不知道我是怎么错过那个拼写错误的xD。谢谢你的帮助。
答案 0 :(得分:0)
在您的代码中:
您应该将i
设置为0
,从第一个开始
数组的值。
你设定
yo
文本的另一个变量是常量,用于追加并使text
变量为空。
如果你想得到&#34; yoyo yomy yobrother&#34;结果做这样的事情:
function myFunction() {
var cars = ["yo", "my", "brother"];
var len = cars.length;
var text = "";
var yotext = "yo";
for (i=0; i < len; i++) {
text += yotext +cars[i]+ " ";
}
console.log(text);
};
myFunction();
<强> Fiddle 强>
答案 1 :(得分:0)
以下假设您要将i初始化为0。
因为+=
运算符会将文本附加到现有字符串。您正在执行以下操作:
第一次迭代:"yo" + "yo" + " " = "yoyo "
第二次迭代:"yoyo " + "my" + " " = "yoyo my "
第三次迭代:"yoyo my " + "brother" + " " = "yoyo my brother "
答案 2 :(得分:0)
for循环通常有三个部分:
1)初始化程序 - 给变量一个起点 2)条件 - 只有在它为真时才会运行循环 3)修饰符 - 更改变量的值
因此,典型的for循环将如下所示:
for (var i = 2; i < len; i++){
}
循环将以这种方式执行:
您是否有理由将i的值设为2而不是0?
答案 3 :(得分:0)
让我们分解代码。
我们有一个数组,汽车,包含3个项目。然后声明i
,后来在for循环中用作迭代器(计数器)。我将继续并假设这是无意的,你的意思是i
在for循环中
for (var i=0; i<len; i++)
for循环在其括号内重复指定次数的代码。在第一个分号后面的for语句的第一部分是迭代器。 i
将基于语句的第3部分在每次循环运行时更改,在本例中为i++
。这意味着将i
增加1. for语句的第二部分指出循环只会在i
小于len
时重复 - 在这种情况下,我们的项目数量数组,3。
最后,在for循环中有一行text += cars[i] + "";
告诉JavaScript每次for循环运行时都将字符串放在一起。我们从"yo"
开始,然后在每次运行中开始:
i string
-------------------------
0 "yoyo "
1 "yoyo my"
2 "yoyo my brother"
答案 4 :(得分:0)
因为代码没有前置&#34;哟&#34; (text
的初始值)到cars[i]+ " "
,而不是它的值text
,其值随循环而变化。
我相信你对+=
运算符比对循环感到困惑。
行text += cars[i]+ " ";
相当于text = text + cars[i]+ " ";
。
通过循环,text
的值将随着每次迭代而改变,如下所示。
- yo
0 yoyo
1 yoyo my
2 yoyo my brother
因此,text
的值将在第一次循环迭代中改变,并且它将不再是&#34;哟&#34;。所以,难怪&#34; yoyo yomy yobrother&#34;没有成功。