Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using Array.fill() and Array.splice() together doesn't work

while solving this, I had to use something like the following lines of code where the line right after for loop didn't work!

function staircase(n) {
    for(let i = 1; i <= n; i++){
       const e = Array(n).fill(' ').splice(n - i, i, ...Array(i).fill('#'));
       console.log(e.join(''))
    }
}

But, the following did!

function staircase(n) {
    for(let i = 1; i <= n; i++){
       const e = Array(n).fill(' ');
       e.splice(n - i, i, ...Array(i).fill('#'));
       console.log(e.join(''))
    }
}

I wonder, why using splice() with fill() in one line didn't work!

like image 382
Abir Sheikh Avatar asked Apr 18 '26 23:04

Abir Sheikh


1 Answers

As has been explained in the comments:

const e = Array(n).fill(' ').splice(n - i, i, ...Array(i).fill('#'));

This assigns the result of splice to e.

const e = Array(n).fill(' ');
e.splice(n - i, i, ...Array(i).fill('#'));

This assigns the result of the first fill to e, and then splice acts upon e.

like image 155
Matt Ellen Avatar answered Apr 20 '26 14:04

Matt Ellen



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!