Создать массив в js с группами одинаковых чисел [1, 1, 2, 2, 3, 3]

Подскажите, как можно создать массив, который будет выводить нечто подобное: То есть, каждая цифра по n раз.

[1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4]
В данном случае, каждая цифра отображена по 5 раз. 

Я попробовал комбинировать циклы for, while, но пока не удалось. Это просто стартовый массив. В качестве теста взято число 50. По итогу должно быть пять единиц, потом пять двоек, потом пять троек и тд, пока их общее число не будет 50

const createArray = (n) => {
  const myArray = []
  for (let i = 0; i <= n; i++) {
    myArray[i] = i + 1;
  }
  console.log(myArray)
}
createArray(50)


Ответы (3 шт):

Автор решения: Евгений Колмак

const createArray = (n) => {
  const myArray = [];
  let step = 0;
  for (let i = 0; i < n; i++) {
    if (i % 5 === 0) {
      step++
    }
    myArray.push(step);
  }
  console.log(myArray);
}
createArray(50)

→ Ссылка
Автор решения: EzioMercer

Будет лучше, если ф-ия будет возвращать массив, а потом уже выводить его где надо:

const createArray = (n, repeatNum = 5) => {
  const myArray = [];
  let num = 1;
  
  while (myArray.length < n) {
    myArray.push(num);
    
    if (myArray.length % repeatNum === 0) ++num;
  }
  
  return myArray;
}

const createdArray = createArray(52);

console.log(createdArray);

Ответ на вопрос из комментария:

const createArray = (n, repeatNum = 5) => {
  const myArray = [];
  let num = 0;
  
  while (myArray.length < n) {
    myArray.push(++num);
    
    if (myArray.length % repeatNum === 0) num = 0;
  }
  
  return myArray;
}

const createdArray = createArray(52, 4);

console.log(createdArray);

→ Ссылка
Автор решения: Artem Gorlachev

const createArray = (n) => [1, 2, 3, 4, 6, 3].map(i => new Array(n).fill(i)).flat()

console.log(createArray(5))

const createArray = n => new Array(n).fill().map((_, i) => Math.floor(i/5));

console.log(createArray(50));

→ Ссылка