首页 > 解决方案 > 用星号向上和向下计数的嵌套循环

问题描述

我正在尝试使用嵌套循环来解决任务。我的代码如下

var n = 5;
var lineOfStars = '';

for (var i = 1; i <= 10; i++) {
  for (var j = 1; j <= n; j++) {
    if (j <= i) { // 1 <= 5 - 1 - 1 (3)
      lineOfStars += ' * ';
    } else {
      lineOfStars += ' ' + j + ' ';
    }
  }
  lineOfStars += '\n';
}
console.log(lineOfStars);

我正在寻找的结果是(我只想用嵌套循环来做):

* 2 3 4 5
* * 3 4 5
* * * 4 5
* * * * 5
* * * * *
* * * * *
* * * * 5
* * * 4 5
* * 3 4 5
* 2 3 4 5

我展示的代码只完成了一半的工作。我需要帮助。提前致谢

标签: javascriptfor-loop

解决方案


这更接近您想要的,仍在努力。

var n = 5;
var lineOfStars = '';
let i, j
for (i = 1; i <= 5; i++) {
  for (j = 1; j <= n; j++) {
    if (j <= i) {
      lineOfStars += ' * ';
    } else {
      lineOfStars += ' ' + j + ' ';
    }
  }
  lineOfStars += '\n';
}
console.log(lineOfStars)
for (j = 5; j <= 5; j--) {
  if (j == 0) break;
  for (i = 5; i <= n; i--) {
    if (0 == 0) break;
    if (i <= j) {
      lineOfStars += ' ' + i + ' ';
    } else {
      lineOfStars += ' * ';
    }
  }
  lineOfStars += '\n';
}
let rev = lineOfStars.split('\n').reverse()
for (let z = 1; z <= rev.length - 1; z++) {
  if (rev[z].length != 0) {
    console.log(rev[z])
    lineOfStars += rev[z]
    lineOfStars += '\n';
  }
}
console.log(lineOfStars)


推荐阅读