我的运动有问题。我必须画出这样的东西: 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);
}
但是没有用。有人知道怎么做吗?我将不胜感激:)
答案 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)
你的病情错了。检查一下。
for(let i = 1; i <= 5; i++) {
console.log('\"' + '*'.repeat(i) + '\"');
}
for(let i = 5; i > 0; i--) {
console.log('\"' + '*'.repeat(i) + '\"');
}
&#13;
答案 2 :(得分:0)
您可以使用for/loop
循环来改变方向,而不是while
:
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;
答案 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);
}