Brett Zamir
Brett Zamir

Reputation: 14345

Smooth way to repeat DOM elements

I'm interested in getting an array of identical (though distinct or cloned) DOM elements so I can use them like this:

parentElement.append(...arrayOfRepeatingElements);

The best I've come up with is:

[0,0,0].map(() => document.createElement('br'))

Or for larger numbers:

new Array(100).fill(0).map(() => document.createElement('br'))

Or slightly shorter:

[...'0'.repeat(100)].map(() => document.createElement('br'))

Is there an even cleaner/more semantic yet DRY and inlinable-as-an-expression way of doing this?

Upvotes: 0

Views: 56

Answers (1)

Hassan Imam
Hassan Imam

Reputation: 22524

You can use array#from

var parentElement = document.getElementById('parentElement');
var elements = Array.from({length: 100}, _=> document.createElement('br'));
parentElement.append(...elements);
<div id='parentElement'></div>

Upvotes: 2

Related Questions