A better Set implementation with customizable equality and set algebra
helpers.
pnpm add @bemedev/better-set- Custom equality comparison for complex values
createBetterSetand aliascreateSet- Full iterable support with
for...of union,intersection,difference,symmetricDifferenceisSubsetOf,isSupersetOf,isDisjointFromsize,isEmpty,toArray,entries,keys,values,forEach,clear,delete
import { createBetterSet } from '@bemedev/better-set';
const set = createBetterSet<{ id: number }>((a, b) => a.id === b.id);
set.add({ id: 1 }, { id: 1 }, { id: 2 });
console.log(set.size); // 2
console.log(set.toArray); // [ { id: 1 }, { id: 2 } ]createBetterSet<T>(equals?: (a: T, b: T) => boolean)
equals— optional custom comparator used to detect duplicates.- Returns
BetterSet<T>.
add(...items)has(item)sizeisEmptyclear()delete(item)forEach(callback)toArrayentrieskeysvaluesunion(other, equals)intersection(other, equals)difference(other, equals)symmetricDifference(other, equals)isSubsetOf(other)isSupersetOf(other)isDisjointFrom(other)
Read CHANGELOG.md for release notes.
MIT
chlbri (bri_lvi@icloud.com)