javascript - 在数组中添加星号?
问题描述
我正在尝试根据元素的数量在数组中添加元素作为星号。基本上如果 numberOfRows 是 3 那么我想要这个输出:
[
' * ',
' *** ',
'*****'
]
我正在努力使用索引设置星号。谁能指出我正确的方向?非常感谢!
这是我的代码:
function myFunction(numberOfRows) {
var arr = [];
var value = "";
var asterisk = "*"; // Need to update this based on number of rows
for (var i = 1; i <= numberOfRows; i++) {
value += asterisk;
arr.push(value);
}
return arr;
}
解决方案
尝试这样的事情;
function myFunction(numberOfRows) {
var arr = [];
var value = "";
var slots = numberOfRows * 2 - 1;
var spaceSlots, asteriskSlots, spaces;
for (var i = 0; i < numberOfRows; i++) {
asteriskSlots = i * 2 + 1;
spaceSlots = Math.floor((slots - asteriskSlots)/2);
spaces = new Array(spaceSlots).fill(' ').join('');
value = spaces + '*'.repeat(asteriskSlots) + spaces;
arr.push(value);
}
return arr;
}
console.log(myFunction(20));
推荐阅读
- django - 将 django 表单作为 json 响应返回?
- angular - 在 Angular 中,如何将变量从父组件公开给子组件?
- javascript - 为什么即使我将值传递给它也没有设置我的第二个输入值(交换功能虽然有效)
- java - 从 java 结果集中跳过重复的行
- office-js - insertSlidesFromBase64 在客户端 Powerpoint 上工作,但不在网络上的 Powerpoint 上
- javascript - 无法更改 InnerText 0r InnerHTML
- jenkins - Bitbucket 构建状态通知程序未显示构建图标
- mysql - 无法删除 MariaDB 上可能损坏的表
- ajax - 使用 AJAX 和 Laravel 8 将数据从 excel 文件导入数据库
- java - 如何更改表中列的顺序?