ES6 — Set vs Array — что и когда?

Когда Сет лучше? А когда Array лучше?

  • Во-первых, Set отличается от Array. Он не предназначен для полной замены массива, но предоставляет дополнительный тип поддержки, чтобы дополнить то, чего не хватает массиву.
  • Поскольку Set содержит только отдельные элементы, жизнь становится намного проще, если мы заранее знаем, что хотим избежать сохранения повторяющихся данных в нашей структуре.
  • Базовые операции Set, такие как union(), intersect(), Different() и т. д., легко и эффективно реализуются на основе встроенных встроенных операций. Благодаря методу delete() он делает пересечение/объединение между двумя наборами намного более удобными, чем выполнение того же самого с двумя массивами.
  • Массив предназначен для сценариев, когда мы хотим упорядочить элементы для быстрого доступа или выполнить значительную модификацию (удаление и добавление элементов) или любое действие, требующее прямого доступа к индексу к элементам (например, попробуйте выполнить бинарный поиск в наборе вместо массива — как получить доступ к элементу, расположенному посередине?)

Вывод

В целом, на мой взгляд, Set на самом деле не имеет огромного явного преимущества перед Array, за исключением определенных сценариев, например, когда мы хотим поддерживать «отдельные» данные с помощью минимальными усилиями или работать с большим количеством различных наборов данных вместе, используя самые основные операции с наборами, без необходимости прямого доступа к элементу.

В противном случае всегда следует выбирать Массив. Причина? Меньше работы ЦП для извлечения элемента, когда это необходимо.

Ссылка: