Learn Introductory JavaScript by Building a Pyramid Generator - Step 95

Tell us what’s happening:

while (rows.length <= count) {
done++;
rows.push(padRow(done, count));
}
I don’t quite understand yet why it would result in an off-by-one error
RangeError: nvalid count value -1

and with the less operator like this
while (rows.length < count) not
The task explain it like that because done is incremented before the call but i still don’ get it can someone explain this to me. Thank you.

Your code so far

const character = "#";
const count = 8;
const rows = [];

function padRow(rowNumber, rowCount) {
  return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber);
}

// TODO: use a different type of loop
/*for (let i = 1; i <= count; i++) {
  rows.push(padRow(i, count));
}*/


// User Editable Region

let done = 0;

while (rows.length <= count) {
  done++;
  rows.push(padRow(done, count));
}

// User Editable Region


let result = ""

for (const row of rows) {
  result = result + row + "\n";
}

console.log(result);

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36

Challenge Information:

Learn Introductory JavaScript by Building a Pyramid Generator - Step 95

repeat will give an error if it is called with .repeat(-1)

That comes if you call padRow with rowCount lower than rowNumber

in the code that is with padRow(9, 8), which happens if you write the <=