Скорость объекта [свойство] - PullRequest
2 голосов
/ 03 апреля 2012

Я хочу следить за тем, «какие объекты уже были обработаны», помещая их в некоторый набор.
Поскольку в JavaScript нет типа Set, я собираюсь использовать Object, как указано в Mimicking множествв JavaScript?
Итак, вопрос: зависит ли проверка словаря от количества объектов, уже вставленных в мой объект Set?Это O (N) или O (1)?

1 Ответ

1 голос
/ 03 апреля 2012

Ответ зависит от двигателя JS, определенно. Что касается V8, скорость проверки зависит от количества объектов (== «Установить» количество свойств объекта), но она все равно O (1). В противном случае ни одно значительное веб-приложение не будет работать достаточно быстро.

Относительно вопроса SO, на который вы ссылаетесь, НЕ используйте if ("foo" in A), чтобы проверить наличие элемента, если это возможно - это обойдет всю цепочку прототипов, так что вы получите влияние на производительность и, скорее всего, найдете много объектов, которые должны не быть там (как toString). Используйте A.hasOwnProperty("foo") всякий раз, когда это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...