我需要创建一个Java脚本程序,该程序从N打印镜像数字三角形。我测试了一些方法,并从任务中获取了50%的信息:
let n = 5;
function generatePyramid(num) {
let number = '';
for (let i = 1; i <= num; i += 1) {
console.log(number += i);
}
}
generatePyramid(n);
此代码仅打印1到5的三角形。如何打印5到1的三角形?
我的打印件必须留有1 2 3 4 5 ...之间的空格,而不是12345。
我在数组中有类似的Java代码,但是无法将其转换为JS:https://pastebin.com/9dqqE8J6
这是最终输出:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
答案 0 :(得分:3)
一种选择是添加一个while
循环,该循环从number
字符串中切出字符,直到其为空:
let n = 5;
function generatePyramid(num) {
let number = '';
for (let i = 1; i <= num; i += 1) {
console.log(number += i);
}
while (number.length > 1) {
number = number.slice(0, number.length - 1);
console.log(number);
}
}
generatePyramid(n);
要添加空格,一种选择是:
let n = 5;
const log = str => console.log(str.replace(/.(?!$)/g, '$& '))
function generatePyramid(num) {
let number = '';
for (let i = 1; i <= num; i += 1) {
log(number += i);
}
while (number.length > 1) {
number = number.slice(0, number.length - 1);
log(number);
}
}
generatePyramid(n);
答案 1 :(得分:2)
<script>
let n = 5;
function generatePyramid(num) {
let number = '';
for (let i = 1; i <= num; i += 1) {
for (let j = 1; j <= i; j += 1)
document.writeln(j+" ");
document.writeln("<br>")
}
for (let i = 4; i >= 1; i -= 1) {
for (let j = 1; j <= i; j += 1)
document.writeln(j+" ");
document.writeln("<br>")
}
}
generatePyramid(n);
</script>
尝试使用相同的代码进行此操作,但是我采用了另一个名为j的循环