用数字和星号构建 javascript 的正方形
building square in javascript out of numbers and asterisks
伙计们,我需要你的帮助,我应该完成在 javascript 中使用 for 循环制作正方形的任务。但我无法得到确切的。请帮助我!这是最终输出的示例:
* 2 3 4 5<br>
* * 3 4 5<br>
* * * 4 5<br>
* * * * 5<br>
* * * * *<br>
我正在尝试解决方案,但 str 正在乘以 itsef 而不是减少。
var n = 5;
var star = "";
var str = '';
var triangle = "";
for(i = 1; i <= n; i++ ){
star += "* ";
for (j = 4; j >= 1; j--){
str += j + " ";
triangle = star + str;
}console.log(triangle);
}
您的代码中当前的逻辑存在一些问题。第一个也是最值得注意的问题是,您在循环外初始化变量 str,并在内部循环内向它附加字符。这会给您带来不良影响,因为当您遍历循环时,字符串的值不会被重置,它只是附加更多字符,即 'multiplying itself'。因此,要解决第一个问题,您只需将 str 变量的声明移至外循环即可。
var n = 5;
var star = "";
var triangle = "";
for(i = 1; i <= n; i++ ){
var str = "";
star += "* ";
for (j = 4; j >= 1; j--){
str += j + " ";
triangle = star + str;
}console.log(triangle);
}
现在代码的输出如下所示:
* 4 3 2 1
* * 4 3 2 1
* * * 4 3 2 1
* * * * 4 3 2 1
* * * * * 4 3 2 1
这仍然是不受欢迎的。现在还剩下两个问题。数字是倒数而不是正数。其中四个始终显示。这两个问题都可以通过如下修复内部循环来一劳永逸地解决:
var n = 5;
var star = "";
var triangle = "";
for(i = 1; i <= n; i++ ){
str = "";
star += "* ";
for (j = i + 1; j <= n; j++){
str += j + " ";
triangle = star + str;
}
console.log(triangle);
}
这给我们留下了最后一个错误,即最后一行打印的与第四个'* * * * 5'相同,因为设置三角形的行在循环内并且在最后一行没有到达循环的迭代。最终解决方案在这里:
var n = 5;
var star = "";
var triangle = "";
for(i = 1; i <= n; i++ ){
str = "";
star += "* ";
for (j = i + 1; j <= n; j++){
str += j + " ";
}
triangle = star + str;
console.log(triangle);
}
伙计们,我需要你的帮助,我应该完成在 javascript 中使用 for 循环制作正方形的任务。但我无法得到确切的。请帮助我!这是最终输出的示例:
* 2 3 4 5<br>
* * 3 4 5<br>
* * * 4 5<br>
* * * * 5<br>
* * * * *<br>
var n = 5;
var star = "";
var str = '';
var triangle = "";
for(i = 1; i <= n; i++ ){
star += "* ";
for (j = 4; j >= 1; j--){
str += j + " ";
triangle = star + str;
}console.log(triangle);
}
您的代码中当前的逻辑存在一些问题。第一个也是最值得注意的问题是,您在循环外初始化变量 str,并在内部循环内向它附加字符。这会给您带来不良影响,因为当您遍历循环时,字符串的值不会被重置,它只是附加更多字符,即 'multiplying itself'。因此,要解决第一个问题,您只需将 str 变量的声明移至外循环即可。
var n = 5;
var star = "";
var triangle = "";
for(i = 1; i <= n; i++ ){
var str = "";
star += "* ";
for (j = 4; j >= 1; j--){
str += j + " ";
triangle = star + str;
}console.log(triangle);
}
现在代码的输出如下所示:
* 4 3 2 1
* * 4 3 2 1
* * * 4 3 2 1
* * * * 4 3 2 1
* * * * * 4 3 2 1
这仍然是不受欢迎的。现在还剩下两个问题。数字是倒数而不是正数。其中四个始终显示。这两个问题都可以通过如下修复内部循环来一劳永逸地解决:
var n = 5;
var star = "";
var triangle = "";
for(i = 1; i <= n; i++ ){
str = "";
star += "* ";
for (j = i + 1; j <= n; j++){
str += j + " ";
triangle = star + str;
}
console.log(triangle);
}
这给我们留下了最后一个错误,即最后一行打印的与第四个'* * * * 5'相同,因为设置三角形的行在循环内并且在最后一行没有到达循环的迭代。最终解决方案在这里:
var n = 5;
var star = "";
var triangle = "";
for(i = 1; i <= n; i++ ){
str = "";
star += "* ";
for (j = i + 1; j <= n; j++){
str += j + " ";
}
triangle = star + str;
console.log(triangle);
}