JavaScript forEach() 调试:代码审查?
JavaScript forEach() debug: code review?
我的输出需要是:
01 02 03 04 05 06 07 08
09 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
我有点缺乏练习,开始时遇到了困难。到目前为止,我将引导您完成我的思考过程,但如果您能在正确的方向上推动我,那就太棒了!
首先,我想我需要建立cell-object模型,像这样;
var mod = {val: 0, first: 0, second: 0};
其次,我需要创建一个包含 32 个这些对象的数组。
var arr = [];
var i = 1;
function createArray(){
while (i < 33) {
if (i<10){
mod = {
val: i,
first: 0,
second: i
}
} else {
mod = {
val: i,
first: i.toString().split('').reverse().pop(),
second: i.toString().split('').pop()
}
arr.push(mod);
}
i++;
}
};
createArray();
var result = '';
arr.forEach(function(space){
space = space.first.toString() + space.second.toString();
if(result.length < 24){
result += space + ' ';
} else {
console.log(result);
result = '';
}
});
这对我来说产生了一个奇怪的结果:
01 02 03 04 05 06 07 08
10 11 12 13 14 15 16 17
19 20 21 22 23 24 25 26
这是怎么回事?它跳过 09
和 18
,但为什么呢?就是看不出来。
编辑
正如 @zerkms 指出的那样,我在 SO 中输入错误。 i++
应该在 while 循环内;否则会产生无限循环。
问题是您没有在行尾包含最后一个值。
result += space + ' '; // always do this
if(result.length > 24) {
console.log(result);
result = '';
}
我的输出需要是:
01 02 03 04 05 06 07 08
09 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
我有点缺乏练习,开始时遇到了困难。到目前为止,我将引导您完成我的思考过程,但如果您能在正确的方向上推动我,那就太棒了!
首先,我想我需要建立cell-object模型,像这样;
var mod = {val: 0, first: 0, second: 0};
其次,我需要创建一个包含 32 个这些对象的数组。
var arr = [];
var i = 1;
function createArray(){
while (i < 33) {
if (i<10){
mod = {
val: i,
first: 0,
second: i
}
} else {
mod = {
val: i,
first: i.toString().split('').reverse().pop(),
second: i.toString().split('').pop()
}
arr.push(mod);
}
i++;
}
};
createArray();
var result = '';
arr.forEach(function(space){
space = space.first.toString() + space.second.toString();
if(result.length < 24){
result += space + ' ';
} else {
console.log(result);
result = '';
}
});
这对我来说产生了一个奇怪的结果:
01 02 03 04 05 06 07 08
10 11 12 13 14 15 16 17
19 20 21 22 23 24 25 26
这是怎么回事?它跳过 09
和 18
,但为什么呢?就是看不出来。
编辑
正如 @zerkms 指出的那样,我在 SO 中输入错误。 i++
应该在 while 循环内;否则会产生无限循环。
问题是您没有在行尾包含最后一个值。
result += space + ' '; // always do this
if(result.length > 24) {
console.log(result);
result = '';
}