0

我只是想知道是否可以就javascript中嵌套for循环遇到的问题获得一些指导。

我目前有以下嵌套的 for 循环

for (var i = 0; i <= score; i++)
{
    for (var j = 0; j <= i; j++)
    {
        var stsc = '<img src="./images/star.png"/>';
    }
}

目的是让变量 stsc 根据 score 变量的计数显示星星的数量。

目前,无论 score 的值是多少,它都只会显示 1 星。我尝试在嵌套循环之外添加 stsc 无济于事。无论我做什么,它只会显示 1 颗星。

你能否指出我正确的方向,如何让它显示正确的星数(如果得分为 3,则为 3 星,如果得分为 0,则为 0 星等......)

谢谢大家

4

3 回答 3

3
var stsc="";
var score=0;
for (var i = 1; i <= score; i++)
{

        stsc = stsc +'<img src="./images/star.png"/>';

}

http://jsfiddle.net/m5Btd/1295/

于 2013-02-02T18:09:12.207 回答
2

你只需要一个正常的for循环和字符串连接

var stsc = '';

for (var i = 0; i < score; i++) {
    stsc += '<img src="./images/star.png"/>';
}

想一想:你想创造n星星,n分数的价值在哪里。因此,您必须重复创建 HTML 字符串的过程n。这就是for循环正在做的事情,重复某些事情直到满足条件。而不是在每次迭代中覆盖变量,您必须添加它。

于 2013-02-02T18:06:42.383 回答
1

您不需要任何 for循环:

var stsc = score === 0 ? "" : new Array(score + 1).join("<img src=./images/star.png>");
于 2013-02-02T18:26:56.980 回答