Таким образом, сценарий состоит в том, что у меня есть объект с большим количеством пар ключ-значение и он тоже вложенный. Мне нужно часто обращаться к этим парам ключ-значение, но не ко всем одновременно. Например: если у меня есть объект с 10 парами ключ-значение, я мог бы использовать только 4 из них чаще.
Я подумал о двух подходах для решения этой ситуации:
- Я бы Выполните итерацию по всему объекту один раз, извлекая каждую пару значений ключей и сохраняя каждую из них отдельно в избыточном хранилище.
- Вместо того, чтобы хранить каждую пару ключей отдельно, я бы оставил объект таким, какой он есть, и получал только требуемая пара значений ключа из объекта с использованием Object.prototype.hasOwnProperty.call (customObject, 'key') .
Анализ сложности пространства-времени:
- В первом подходе я буду использовать дополнительное пространство в хранилище с избыточностью, поскольку я буду хранить сам объект целиком и каждую пару значений ключа отдельно. Это дает мне временную сложность O (N) , потому что я буду перебирать весь объект, а также буду , используя дополнительное пространство .
- Во втором подход я бы только хранить основной объект в хранилище и по мере необходимости будет получать пару ключ-значение. Это дает мне временную сложность O (1) , так как hasOwnProperty () является ключевым методом поиска, и я не использую дополнительное пространство для хранения .
Мой вопрос: какой подход мне выбрать? На мой взгляд, второй подход лучше.