我怎么能创建明星的金字塔,每行增加 2 :
*
* * *
* * * * *
* * * * * * *
我目前的代码:
for (var x = 0; x < 5; x++) {
for (var y = 0; y <= x; y = y + 1) {
document.write(" * ");
}
document.write("<br>");
}
答案 0 :(得分:4)
只需将循环增加2即可。
for(var i = 1; i < 20; i += 2) {
console.log( Array(i).fill('*').join(' ') );
}
否则只需在你的循环中加倍
for(var i = 0; i < 10; i++) {
console.log( Array(i*2 + 1).fill('*').join(' ') );
}
您可能还需要polyfill Array.fill,具体取决于您的目标。
答案 1 :(得分:2)
其他答案每次都会重新创建整行。这个解决方案只是每次扩展行以获得另一个星。
function pyramid(n) {
let result = '', str = '', add = '*';
for (var i = 0; i < n; i++) {
str += add;
add = ' *';
if (!(i % 2)) result += str + '\n';
}
return result;
}
console.log(pyramid(5));
&#13;
答案 2 :(得分:0)
你可以这样做。
function generate() {
var totalNumberofRows = 5;
var output="";
for (var i = 1; i <= totalNumberofRows; i++) {
for (var j = 1; j <= i; j++) {
if(j==1)
output+="*";
else
output+=" "+ "*" + " "+ "*";
}
console.log(output);
output="";
}
}
generate()
&#13;
答案 3 :(得分:0)
希望这对你也有好处....
$(document).ready(function(){
var NumberofRows = 5,arr;
for (var i = 1; i <= NumberofRows; i++) {
pyramid = [];
for (var j = 1; j <= i; j++) {
pyramid.push('*');
}
console.log(pyramid.join(" ") + "\n");
}
});
``