反转循环javascript

时间:2018-03-23 13:56:40

标签: javascript

我的运动有问题。我必须画出这样的东西: https://screenshots.firefox.com/3qaHB7dcr3n610hi/jsbin.com

这是我的代码

  var empty = "";
for(var i=0; i < 5; i++) {
  empty += "*";
  console.log(empty)
}

但是使用此代码我只能这样做:

*  
**
***
****
*****

我不知道如何扭转这个循环从5星的顶部开始,我试过这样的事情:

var empty = "";
for (i = 5; i <= 0;i--) {
  empty+="*";
  console.log(empty);
}

但是没有用。有人知道怎么做吗?我将不胜感激:)

4 个答案:

答案 0 :(得分:2)

  • 您的方法构建了第一部分。
  • 第二部分可以使用 slice 功能以降序方式完成。

var empty = "";
var i = 0;

// Build the first part
for (; i < 5; i++) {
  empty += "*";
  console.log(empty)
}

// Here i = 5, so this is the initialization for the following loop.
// Loop in descending direction using the function slice.
for (; i > 0; i--) {  
  console.log(empty.slice(0, i))
}
.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:1)

你的病情错了。检查一下。

&#13;
&#13;
for(let i = 1; i <= 5; i++) {
  console.log('\"' + '*'.repeat(i) + '\"');
}
for(let i = 5; i > 0; i--) {
  console.log('\"' + '*'.repeat(i) + '\"');
}
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用for/loop循环来改变方向,而不是while

&#13;
&#13;
let stars = 0;
let count = 0;
while (count < 9) {
  if (count < 5) stars++;
  if (count >= 5) stars--;
  const line = Array(stars).fill('*').join('');
  console.log(line);
  count++;
}
&#13;
&#13;
&#13;

答案 3 :(得分:0)

以防您需要嵌套for循环。 (有些练习有时会这样做)

var k = 0;
for(var i = 1; i < 12; i++){   
    var stx = "";
    for(var j = k; j < i; j++){
        stx += "*";
    }
    if(i > 5) k += 2
    if(i == 6) continue
    console.log(stx);
}