在JS中打印镜像数字三角形

时间:2018-11-02 09:36:05

标签: javascript loops

我需要创建一个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

2 个答案:

答案 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的循环