一生懸命やってみたのですが、どうしてもわかりません。
数字を出力したいのですが、一度に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....
助言がありますか?:)
一生懸命やってみたのですが、どうしてもわかりません。
数字を出力したいのですが、一度に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....
助言がありますか?:)
最初に数値を文字列に連結します。
var s = '';
for (var i = 1; i <= 42; i++) s += i.toString();
次に、文字列内の文字をループします。
for (var i = 0; i < s.length; i++) {
// output s[i]
}
これが私のアプローチで更新されたあなたの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 列目を超えないようにするのはあまり良い方法ではありません。
ここで更新されたフィドルを確認してください
これはあなたの目的に役立ちます。
以下はコードです、それのほとんどはあなたのコードだけです:
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);
次のような文字列のすべての文字を取得します。
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);