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 を取得することです。

現在、スコアの値に関係なく、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 に答える