Быстрая фильтрация массива чисел 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);