Быстрая фильтрация массива чисел js

Задача следующая: есть массив целых чисел от min до max. Необходимо получить новый массив чисел в котором каждое число будет состоять из одинаковых цифр. Например:

[1,2,3,4,5,6,7,8,9,11,22,33,44,55,...,1111,2222,3333]

Я написал вот такой скрипт, но его сложность очень высокая и он работает только для массива чисел от 1 до 100 000 000. Буду благодарен, если подскажет, что я делаю не так.

let arr1 = [];
let min = 1;
let max = 100000000;
for (let i = min; i <= max; i++) {
  arr1.push(i);
}

function search(arr) {
  let count = 0;
  let arr2 = [];
  let j = 0;
  let step = 1;
  let divider = 1;
  while (j < arr.length) {
    if (!(arr[j] % divider)) {
      if ((arr[j] / divider) < 10) {
        count += 1;
        arr2.push(arr[j]);
      } else {
        divider = divider * 10 + 1;
        step = step * 10 + 1;
        j = j + 1;
        count += 1;
        arr2.push(arr[j]);
      }
    }
    j = j + step;
  }
  console.log('count', count)
  console.log('arr', arr2)
}

search(arr1);


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