2012-04-21 78 views
0

我必须创建一个while循环显示1-20的整数,但每行只有5个整数。 我无法获得每行5个整数部分。什么是最好的方式来做到这一点?Javascript虽然循环整数

+0

有你连这个尝试自己? – elmigranto 2012-04-21 03:09:42

+0

是的,但不像你拥有它的方式。正如你可能已经注意到我的问题,我现在的编码是相当基本的 – 2012-04-21 03:37:04

+1

我在问,因为张贴你的代码片段可能会更好地从学习的角度看。你将能够理解你犯了哪些错误,以后如何避免错误等。在类似的“你好 - 世界”的例子中,这可能不是那么明显,但海事组织总是更好地发布你自己做的东西。 – elmigranto 2012-04-21 12:42:37

回答

0

下面是建立一个字符串,并显示其结果一个警告框的解决方案。

var i = 0, result = ""; 

while (i++ < 20) { 
    result += i + " "; 

    // check to see if we're at 5/10/15/20 to add a new-line 
    if (i % 5 === 0) { 
     result += "\n"; 
    } 
} 

alert(result); 

的jsfiddle测试:http://jsfiddle.net/willslab/KUVkX/3/

+0

我很少清理代码。感谢您接受,如果您对代码有任何疑问,请告知我们。 – 2012-04-21 17:35:45

0

你可以做...

if (! (i % 5)) { 
    // Create new line. 
} 

jsFiddle

1

检查它是否是5之后的下一个项目,如果当前项目不是第一个项目。如果是,也打印换行符。例如:

for(var i = 1; i <= 20; i++) { 
    print(i); // Or however you're outputting it 

    if(i % 5 === 1 && i > 1) { 
     print('\n'); 
    } 
} 
0

看到没有while循环在以前的答案=)

function generateLine(start, nElements, separator) { 
    var i = start; 
    var range = []; 
    while (range.length < nElements) range.push(i++); 
    return range.join(separator) + '\n'; 
} 

function generate(start, end, elementsInLine, inlineSeparator) { 
    var lines = []; 
    while (start < end) { 
    lines.push(generateLine(start, elementsInLine, inlineSeparator)); 
    start += elementsInLine; 
    } 

    return lines.join(''); 
} 

console.log(generate(1, 20, 5, ' ')); 
+0

这是一个不错的解决方案,我也想写一个通用函数。虽然我不确定这很容易理解。 – 2012-04-21 17:38:13