JSFiddle - React, Tailwind, and code Playground

by Igor Cuckovic

JavaScript

function towerBuilder(nFloors, nBlockSz) {

  
  var array = [];
  var blockWidth = nBlockSz[0];
  var blockHeight = nBlockSz[1];
  
  var star = returnElements (blockWidth, "*");
  var space = returnElements (blockWidth, " ");
  
  var length = nFloors * 2 - 1;
  
  function returnElements (n, element) {
    if (n === 0) {
      return "";
    }
    
    if (n === 1) {
      return element;
    }
  
    var total = "";
    for (var j = 1; j <= n; j += 1) {
      total += element;
    }
    
    return total;
  } 
  
  var currentSet = blockHeight;
  
  function setFloor(floor, length) {
    var starNum = floor * 2 - 1; 
    var spaces = length - starNum;
    return returnElements(spaces/2, space) + returnElements(starNum, star) + returnElements(spaces/2, space);
  }
  
  for (var i = 1; i <= nFloors; i += 1) {
  	for (var g = 1; g <= blockHeight; g += 1) {
    	array.push(setFloor(i, length));
    }
    
  }
  
  return array;
}

console.log(towerBuilder(3, [4, 2]))