首页 > 解决方案 > 如何使 array.push() 字符串乘以 i

问题描述

我一直在寻找这个答案,大多数结果都让人们不想多次推动,而且很难找到一个直接的解决方案/替代方案。

我的任务是在一个数组中输出一个塔。它根据其地板尺寸递增。例如。

[
  '  *  ', 
  ' *** ', 
  '*****'
]

我仍然在学习 Javascript,我很想学习,这就是我想出的:

function towerBuilder(floors) {
  let arr = [];
  let space = " ";
  let tower = "*"  

  for (i = 0; i < floors; i++) {
    arr.push(space, tower * i, space);
  }
    console.log(arr)
}

towerBuilder(3);

console.log 显示 (Array [ 0, NaN, 0, 0, NaN, 0, 0, NaN, 0 ]) - 我想将字符串相乘是个坏主意。

我可能可以创建多个 for 循环并让每个 push 在自己的循环中,但这看起来真的很乱。

有没有办法将空格和 * 乘以 for 循环?

谢谢

标签: javascriptarraysloops

解决方案


 function towerBuilder(floors) {
      let arr = [];
      let tower = '*';
      let space = ' ';
      let total = (2 * floors) + 1;
      for (i = 0; i < floors; i++) {
        let count = (2 * i) + 1;
        let free = (total - count) / 2;
                     arr.push(`${space.repeat(free-1)}${tower.repeat(count)}${space.repeat(free-1)}`);
      }
      console.log(arr)
    }

    towerBuilder(3);


推荐阅读