[Home] > Snippets  > Languages  > JavaScript  > Arrays  >  Repeat an array

Repeat an array

JavaScript

// `arr` is an array
const repeat = (arr, n) => [].concat(...Array(n).fill(arr))

// Or
const repeat = (arr, n) => Array(n).fill(arr).flat()

// Or
const repeat = (arr, n) =>
Array(arr.length * n)
.fill(0)
.map((_, i) => arr[i % arr.length])

// Or
const repeat = (arr, n) => Array.from({ length: arr.length * n }, (_, i) => arr[i % arr.length])

TypeScript

const repeat = <T,_>(arr: T[], n: number): T[] => [].concat(...Array(n).fill(arr))

// Or
const repeat = <T,_>(arr: T[], n: number): T[] => Array(n).fill(arr).flat()

// Or
const repeat = <T,_>(arr: T[], n: number): T[] =>
Array(arr.length * n)
.fill(0)
.map((_, i) => arr[i % arr.length])

// Or
const repeat = <T,_>(arr: T[], n: number): T[] =>
Array.from({ length: arr.length * n }, (_, i) => arr[i % arr.length])

Example

repeat([1, 2, 3], 3) // [1, 2, 3, 1, 2, 3, 1, 2, 3]