var cars = ["BMW", "Volvo", "Saab", "Ford"];
var text = "33";
var i;
for (i = 0; i < cars.length; i++) {
text += cars[i] + "<br>";
}
document.getElementById("demo").innerHTML = text;
&#13;
<p id="demo"></p>
&#13;
嗨,我希望更好地理解JavaScript,并且我对for循环中的这个变量感到困惑。为什么结果不会在集合中的每个结果中添加文本的值?
33bmw
Volvo
Saab
Ford
为什么不是这个..
33bmw
33Volvo
33Saab
33Ford
答案 0 :(得分:2)
这是因为您将每个cars
项添加到text
。在第一次迭代后,text
不再只是33
。它的33BMW
。
您需要的是:
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var text = "33";
var result = ""; // add a special variable to store both `text` and `car` name
var i;
for (i = 0; i < cars.length; i++) {
result += text + cars[i] + "<br>"; // use it here
}
document.getElementById("demo").innerHTML = result; // and here
答案 1 :(得分:1)
您正在将文本初始化为“33”。然后对于每辆车,您将汽车的名称(car [i])和br添加到文本中。你想要的是将文本初始化为“”。然后为每辆车添加“33”。
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var text = "";
var i;
for (i = 0; i < cars.length; i++) {
text += "33" + cars[i] + "<br>";
}
document.getElementById("demo").innerHTML = text;
答案 2 :(得分:1)
在代码中的评论中回答
//array of strings
var cars = ["BMW", "Volvo", "Saab", "Ford"];
// sets the variable text to "33"
var text = "33";
var i;
// loops through the strings in cars variable
for (i = 0; i < cars.length; i++) {
// adds car string + <br> to text
// first pass is 33BMW<br>
// second pass is 33BMW<br>Volvo<br>
// third pass is 33BMW<br>Volvo<br>Saab<br>
// fourth pass is 33BMW<br>Volvo<br>Saab<br>Ford<br>
text += cars[i] + "<br>";
}
// writes the text to an html element
document.getElementById("demo").innerHTML = text;
&#13;
<p id="demo"></p>
&#13;
<强>解决方案强>
创建一个33
的前缀,然后将其附加到循环中,使其位于每一行
//array of strings
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var text = "";
var prefix = "33";
var i;
// loops through the strings in cars variable
for (i = 0; i < cars.length; i++) {
text += prefix + cars[i] + "<br>";
}
// writes the text to an html element
document.getElementById("demo").innerHTML = text;
&#13;
<p id="demo"></p>
&#13;
答案 3 :(得分:0)
这会给你想要的结果:
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var prefix = "33";
var text = "";
var i;
for (i = 0; i < cars.length; i++) {
text += prefix + cars[i] + "<br>";
}
答案 4 :(得分:0)
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var text = "33";
var output;
var i;
for (i = 0; i < cars.length; i++) {
output += (text + cars[i]) + "<br>";
}
应该是你的代码。 text = text + cars [0]创建33BMW。下一次迭代将沃尔沃加到33BMW而不是33VMW到33BMW。
答案 5 :(得分:0)
你必须在汽车的每个值中连接文本。
新脚本
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var text = "33";
var out_text = '';
out_text = cars.map(function(i){
return text + i;
}).join( "<br/>");
document.getElementById("demo").innerHTML = out_text;
您的脚本:
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var text = "33";
var i;
var out_text = '';
for (i = 0; i < cars.length; i++) {
out_text = text + cars[i] + "<br>";
}
<强>输出:强>
33BMW
33Volvo
33Saab
33Ford
document.getElementById("demo").innerHTML = out_text;