Learn Introductory JavaScript by Building a Pyramid Generator - Step 107

Tell us what’s happening:

i get error that i should use function shift on numbers var, and thats what i do… any ideas?

const numbers = [1, 2, 3];

const unshifted = numbers.unshift(5);
console.log(unshifted);
console.log(numbers);

const shifted = numbers.shift();
console.log(shifted);

// running tests
You should call .shift() on your numbers array.
You should assign the result of your .shift() call to your shifted variable.
// tests completed
// console output
4
[ 5, 1, 2, 3 ]
5

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));
}*/

/*while (rows.length < count) {
  rows.push(padRow(rows.length + 1, count));
}*/

/*for (let i = count; i > 0; i--) {
  rows.push(padRow(i, count));
}*/


// User Editable Region

const numbers = [1, 2, 3];


const unshifted = numbers.unshift(5);
console.log(unshifted);
console.log(numbers);

const shifted = numbers.shift();
console.log(shifted);


// User Editable Region


let result = "";

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

console.log(result);

Your browser information:

User Agent is: Mozilla/5.0 (X11; Linux x86_64; rv:125.0) Gecko/20100101 Firefox/125.0

Challenge Information:

Learn Introductory JavaScript by Building a Pyramid Generator - Step 107

Put your new code on the empty lines in the starting code. It should come before the unshift code.

thanks for the help! But i have only space for my code now. I entered it:

const numbers = [1, 2, 3];
const shifted = numbers.shift();
console.log(shifted); // This should log 1

And still get same error!

// running tests You should call

.shift()

on your

numbers

array. // tests completed // console output 1

Not sure what you mean by this?

You shouldn’t delete the unshift code, what you had was correct, it just wasn’t in the correct order.


Just so it is super clear:

// User Editable Region

const numbers = [1, 2, 3];


const unshifted = numbers.unshift(5);
console.log(unshifted);
console.log(numbers);

const shifted = numbers.shift();
console.log(shifted);


// User Editable Region

Should be:

// User Editable Region

const numbers = [1, 2, 3];

const shifted = numbers.shift();
console.log(shifted);

const unshifted = numbers.unshift(5);
console.log(unshifted);
console.log(numbers);


// User Editable Region
1 Like

thanks it works for me , but i dont know why it works !! can you explain please

I’m not sure what you mean by “why it works”.

Are you asking why the order matters?

They are array operations, so the order matters, and the tests expect a specific order of execution and end result.

yes that worked, it seems that the code linter is quite strict so it only allows for a certain layout , thank you

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.