打印 1-100 的偶数,每行 5 个数字

Print even numbers from 1-100 with 5 numbers per line

正在尝试复习一些基本知识 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);

非常感谢!

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);

对于大多数假设性的编程问题,最值得解决的是他们缺乏现实基础并做最简单的事情——现实肯定会复杂得多。

至于学习练习,通常当您自己解决时效果最好。

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 = []
    }
}

我在代码中看到的问题是您从 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 到 100 分两步循环。您根本不需要计数器,您可以将项目推入数组。无需重复将项目添加到 ifelse 块中的数组的代码,您只需在之后执行一次即可。

通过这些简化,您得到:

var line=[];

for (var i = 2; i <= 100; i += 2) {
  if (line.length == 5) {
    console.log(line);
    line=[];
  }
  line.push(i);
}
console.log(line);

<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 的循环