使用javascript函数递归制作星形三角形

Eri*_*yan 6 javascript recursion

我对编程很陌生,我开始了解 JavaScript,而且我刚刚学习了递归的概念。现在我遇到了一个问题,要创建一个函数(如const f = function(n) { }),如果我们使用 调用该函数f(5),我们应该看到:

     *
    ***
   *****
  *******
 *********
Run Code Online (Sandbox Code Playgroud)

垂直星的数量必须由输入确定。我必须使用 no for/while/do-while;递归只能循环。

我想出了这个代码来连接 5 颗星

const f = function(n) {
  if (n === 0) {
    return "";
  }
  return  "*" +  f(n - 1);
};

 console.log(f(5));
Run Code Online (Sandbox Code Playgroud)

虽然,我不知道如何制作三角形,我该怎么办?

jcu*_*bic 5

您可以使用此代码:

const f = function(chr, n) {
  if (n === 0) {
    return "";
  }
  return  chr +  f(chr, n - 1);
};
const g = function(max) {
   const inner = function(n) {
       if (n > 1) {
           inner(n-1);
       }
       console.log(f(' ', max-n) + f('*', (n*2)-1));
   };
   inner(max);
};
g(5);
Run Code Online (Sandbox Code Playgroud)