尝试刷新一些基本的JavaScript,我想知道如何解决这个问题。我找到了一种方法,但它非常丑陋,我很欣赏一些更有经验的眼睛,让我知道它们的作用。基本上,只需迭代数字1-100并在每行上以五个一组的形式打印所有偶数。第一行是2,4,5,8,10,第二行是12,14,16,18,20。以下是我到目前为止的情况:
var counter = 0;
var line=[];
for(var i = 0; i<=100; i++){
if(i%2==0){
if(line.length <5){
line[counter] = i;
counter++
}else{
console.log(line);
line=[];
counter=0;
line[counter] =i;
}
}
}
console.log(line);
非常感谢!
答案 0 :(得分:3)
console.log(2,4,6,8,10);
console.log(12,14,16,18,20);
console.log(22,24,26,28,30);
console.log(32,34,36,38,40);
console.log(42,44,46,48,50);
console.log(52,54,56,58,60);
console.log(62,64,66,68,70);
console.log(72,74,76,78,80);
console.log(82,84,86,88,90);
console.log(92,94,96,98,100);
对于大多数假设的编程问题,最有价值的是解决他们在现实中缺乏生根并做最简单的事情 - 现实肯定会变得更加复杂。
至于学习练习,当你自己解决这些练习时,这些练习通常效果最佳。
答案 1 :(得分:1)
var line = [];
//you are uninterested in odd numbers, so increment the counter by 2
for(var i = 0; i <= 1000; i = i + 2) {
line.push(i);
if((i + 2) % 5 === 0) { //every 5 lines print result
console.log(line);
line = []
}
}
答案 2 :(得分:1)
我在代码中看到的问题是你从0而不是1循环,并且你没有增加else
块中的计数器。
修复你的问题:
var counter = 0;
var line=[];
for (var i = 1; i <= 100; i++) {
if (i % 2 == 0){
if (line.length < 5) {
line[counter] = i;
counter++
} else {
console.log(line);
line=[];
counter = 0;
line[counter] = i;
counter++
}
}
}
console.log(line);
不是从1到100循环并检查数字是否为偶数,而是以2为单位从2循环到100。您根本不需要计数器,可以将项目推入阵列。而不是重复在if
和else
块中向项目添加项目的代码,您可以在之后执行一次。
通过这些简化,你得到:
var line=[];
for (var i = 2; i <= 100; i += 2) {
if (line.length == 5) {
console.log(line);
line=[];
}
line.push(i);
}
console.log(line);
答案 3 :(得分:0)
<script>
var counter = 0;
var line = [];
for (var i = 2; i <= 100; i += 2) {
line[counter] = i;
counter++;
if (line.length == 5) {
console.log(line);
counter = 0;
line = [];
}
}
</script>
与您的相同,但使用循环递增2