我已经很努力了,但我就是想不通。
我想输出数字,但一次只能输出数字的一个字符。我需要创建这样的东西:
这应该在 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....
有什么建议么?:)
我已经很努力了,但我就是想不通。
我想输出数字,但一次只能输出数字的一个字符。我需要创建这样的东西:
这应该在 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>
但不循环返回以增加列计数器的实例更新列计数器。IE,
if (k > 0) {
j++;
}
这是一个更新版本,显示了它是如何工作的:http: //jsfiddle.net/jv7H8/21/
值得注意的是,当您在第 19 列中显示超过一位数的数字时,没有一种很好的方法可以不超过第 19 列。
获取字符串中的所有字符,如下所示:
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);
请在此处检查您更新的小提琴
这将达到您的目的。
以下是代码,其中大部分只是您的代码:
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);