-1

一生懸命やってみたのですが、どうしてもわかりません。

数字を出力したいのですが、一度に1文字しか出力できません。次のようなものを作成する必要があります。

これは for ループ内で作成する必要があります: http://jsfiddle.net/jv7H8/

しかし、ご覧のとおり、数値が 10 を超えると、セルに複数の文字が表示されます。

望ましい結果は、たとえば次のようになります。

1、2、3、4、5、6、7、8、9、1、0、1、1、1、2、1、3、1、4....

助言がありますか?:)

4

4 に答える 4

3

最初に数値を文字列に連結します。

var s = '';
for (var i = 1; i <= 42; i++) s += i.toString();

次に、文字列内の文字をループします。

for (var i = 0; i < s.length; i++) {
  // output s[i]
}
于 2012-05-08T13:17:54.607 に答える
1

これが私のアプローチで更新されたあなたのjsfiddleです:http://jsfiddle.net/jv7H8/2/

私が変更した関連する側面は、出力する数値の長さを処理する for ループを追加することでした。

var str = number.toString(); // the current number as you're looping through
for (var k = 0; k < str.length; k++) {
    var oneLetterAtATime = str.charAt(k); // get the digits one at a time
    output += "<td>" + oneLetterAtATime + "</td>";
}
number++;

編集: 19列だけが必要な場合は、別のインスタンスを表示している<td>が、列カウンターをインクリメントするためにループバックしないすべてのインスタンスの列カウンターを更新する必要があります。すなわち、

if (k > 0) {
    j++;
}

これがどのように機能するかを示す更新版を次に示します: http://jsfiddle.net/jv7H8/21/

特に、2 桁以上の数字を 19 列目に表示しているときに、19 列目を超えないようにするのはあまり良い方法ではありません。

于 2012-05-08T13:20:52.693 に答える
0

ここで更新されたフィドルを確認してください

これはあなたの目的に役立ちます。

以下はコードです、それのほとんどはあなたのコードだけです:

rows = 3;
columns = 19;
number = 1;
var str = "";
output = '<table style="width:100%;">';
for(var i = 0; i < rows; i++) {
    output += "<tr>";
    for(var j = 0; j < columns; j++) {
        output += "<td>" + number + "</td>";
        str +=number;
        number++;
    }
    output += "</tr>";
}
output += "</table>";
$("#game").html(output);

var strvalue="";

$.each(str, function(e,v){
    if (e > 0){
        strvalue = strvalue + ", "+ v;
    }
    else{
    strvalue += v;
    }
});

alert(strvalue);
于 2012-05-08T13:30:43.943 に答える
0

次のような文字列のすべての文字を取得します。

var t = '';
var limit=100;
for (var j = 1; j<= limit; j++) t += j.toString();

var output='';
for (var j = 0; j < t.length; j++) {
  output=output+','+t[i];
}
alert(output);
于 2012-05-08T13:23:23.917 に答える