-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>但不循环返回以增加列计数器的实例更新列计数器。IE,

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

这是一个更新版本,显示了它是如何工作的:http: //jsfiddle.net/jv7H8/21/

值得注意的是,当您在第 19 列中显示超过一位数的数字时,没有一种很好的方法可以不超过第 19 列。

于 2012-05-08T13:20:52.693 回答
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 回答
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 回答