Хорошо.Несмотря на очевидное ожидание, что адрес объекта и набор должны превосходить массивы, включенные в тестирование, Chrome показывает, что реализация превосходит ожидания.
На стендах, в которых я участвовал в Chrome Array, был самый лучший исполнитель.
Я также тестировал локально с Node и получил больше ожидаемых результатов.В том случае, когда адрес объекта побеждает, а за ним внимательно следит Set, то включение массива было несколько медленнее, чем оба.
Суть в том, что если вы проводите микрооптимизацию (не рекомендую этого), стоит сравнить ее, а не предполагатьчто может быть лучше для вашего конкретного случая.В конечном итоге все сводится к реализации, как и предполагает ваш вопрос.Поэтому оптимизация под целевую платформу является ключевой.
Вот результаты, которые я получил:
Узел (12.6.0):
ops for Object address 7804199
ops for Array includes 5200197
ops for Set has 7178483
Chrome(75,0):
https://jsbench.me/myjyq4ixs1/1
![benchmark against Chrome](https://i.stack.imgur.com/PRLv6.png)