Я хочу написать функцию, которая преобразует все экземпляры свойства любого объекта с нулевым в неопределенное.Многие из моих объектов имеют вложенные объекты в виде свойств или массивов значений / объектов.
Моя первая мысль при рассмотрении проблемы состоит в том, чтобы использовать обобщенные элементы, чтобы попытаться поймать тип каждого из свойств с универсальным типом, а затемчтобы преобразовать значение этого свойства из нулевого в неопределенное при необходимости.
Я надеюсь написать функцию, которая достаточно универсальна, чтобы работать с любыми объектами разных типов и размеров, которые есть у меня в базе кода.
Мне не удалось найти простой способ получить неизвестное количество универсальных типов, поэтому я подумал, что мне придется везде использовать любой тип.Есть ли способ обойти это?
Я также хотел бы получить совет относительно самого подхода / алгоритма.Я думаю, что мне, вероятно, нужно будет рекурсивно проверять каждое свойство, чтобы увидеть, является ли оно самим объектом со вспомогательными свойствами, и мне также нужно будет перебирать любые найденные массивы, которые также могут иметь нулевое значение, или иметь объектэто также необходимо будет рекурсивно проверить.
Проблемы / вопросы, которые мне нужно решить / ответить:
- Должен ли я использовать Generics или Any?
- Еслия использую дженерики, есть ли способ динамически назначать новые дженерики при обнаружении нового типа?
- Есть ли в машинописи более простой способ рекурсивного разбора объектов?
Мой текущий подходчто-то вроде:
inputObjectKeys.map(key, index) =>
, тогда есть функция, которая преобразует ноль в неопределенное, игнорирует не-объектные типы и рекурсивно, если это объект.
Я предполагаюЯ бы хотел использовать поиск по ширине или поиск по глубине (для этой конкретной задачи я склоняюсь к поиску по ширине).Я предполагаю, что поскольку мне нужно посещать каждый узел, мне может быть лучше с DFS просто из-за использования памяти.