首页 > 解决方案 > 在数组中添加星号?

问题描述

我正在尝试根据元素的数量在数组中添加元素作为星号。基本上如果 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;
}

标签: javascript

解决方案


尝试这样的事情;

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));


推荐阅读