понимание сложности пространства времени относительно JavaScript объектов - PullRequest
0 голосов
/ 08 апреля 2020

Таким образом, сценарий состоит в том, что у меня есть объект с большим количеством пар ключ-значение и он тоже вложенный. Мне нужно часто обращаться к этим парам ключ-значение, но не ко всем одновременно. Например: если у меня есть объект с 10 парами ключ-значение, я мог бы использовать только 4 из них чаще.

Я подумал о двух подходах для решения этой ситуации:

  1. Я бы Выполните итерацию по всему объекту один раз, извлекая каждую пару значений ключей и сохраняя каждую из них отдельно в избыточном хранилище.
  2. Вместо того, чтобы хранить каждую пару ключей отдельно, я бы оставил объект таким, какой он есть, и получал только требуемая пара значений ключа из объекта с использованием Object.prototype.hasOwnProperty.call (customObject, 'key') .

Анализ сложности пространства-времени:

  1. В первом подходе я буду использовать дополнительное пространство в хранилище с избыточностью, поскольку я буду хранить сам объект целиком и каждую пару значений ключа отдельно. Это дает мне временную сложность O (N) , потому что я буду перебирать весь объект, а также буду , используя дополнительное пространство .
  2. Во втором подход я бы только хранить основной объект в хранилище и по мере необходимости будет получать пару ключ-значение. Это дает мне временную сложность O (1) , так как hasOwnProperty () является ключевым методом поиска, и я не использую дополнительное пространство для хранения .

Мой вопрос: какой подход мне выбрать? На мой взгляд, второй подход лучше.

...