javascript - 如何使 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 循环?
谢谢
解决方案
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);
推荐阅读
- python - ValueError:无法将输入数组从形状(3825)广播到形状(15253)
- javascript - React Navigation 仅在第二次导航后设置参数
- amazon-web-services - How to enable the security hub through cloudformation template
- oracle - 使用 Visual Studio Code 更改 Oracle Query 的输出结果日期/时间格式
- r - 使用特定包构建 R 容器
- image - Flutter 主屏尺寸?
- java - Javax-servlet-api 4.0.1 java.lang.NoClassDefFoundError: javax/servlet/http/HttpSessionIdListener 错误
- java - 在运行时延迟初始化 Spring Security + 重新加载 Spring Security 配置
- hangfire - 如何在运行时确定作业的队列
- css - 将元素定位在页面中间,与其他元素无关