это в 4-5 раз быстрее предыдущей функции. На скрине скорость для 4000. Но все равно не подходит для больших объектов. 4400 свойств берет, а 4500 уже пишет ошибку "Maximum call stack size exceeded"
Даже если можно этот размер стека где-то увеличить, то все равно она обрабатывает 4000 со скоростью, как функция Дениса с фильтром 500 тыс.
Итог: в разы быстрее предыдущей, но не лучший вариант((
Не лень тебе было писать такое сложное?)) можно придумать какой-то надежный способ мерять скорость и устраивать конкурсы, кто более быстрое решение для несложной задачи напишет с призовым фондом))