JavaScript Set.has() — чи є значення в множині


Метод has() перевіряє, чи є значення в множині, і повертає true або false.

автор: NagarD

Загальний опис

Це найсильніша сторона Set. array.includes() перебирає масив з початку — і що більший масив, то повільніше. has() працює однаково швидко незалежно від розміру.

На десятку значень різниці не помітно. На десятках тисяч (перевірка «чи є слово в словнику», «чи заблокований цей id») — різниця стає різницею між миттєво й помітно.

автор: NagarD

Порада

Робиш багато перевірок «чи є в списку» — перетвори масив на Set один раз перед циклом. Це найдешевша оптимізація в JavaScript.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
has 38+ 13+ 8+ 25+ 12+ 11+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
has 38+ yes yes 8+

Приклади

+ запропонувати свій приклад у пісочниці

Швидка перевірка входження замість перебору масиву.

const blocked = new Set(['spam', 'bot', 'test']);

console.log(blocked.has('bot')); // true — миттєво

// у масиві та сама перевірка повільна на великих обсягах:
// blockedArray.includes(name)

const allowedList = ['oleh', 'lesia', 'marko'];
const users = [{ name: 'oleh' }, { name: 'bot' }, { name: 'lesia' }];

// перетворили ОДИН раз — далі всі перевірки миттєві
const allowed = new Set(allowedList);
const clean = users.filter(user => allowed.has(user.name));

console.log(clean.map(user => user.name)); // ['oleh', 'lesia']
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід