From 0af9ec8bb4ea35cac0028cd0f3024d0634e4aa2a Mon Sep 17 00:00:00 2001 From: Isabelle Viktoria Maciohsek Date: Sun, 11 Oct 2020 11:53:08 +0300 Subject: [PATCH] Add subSet --- snippets/subSet.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 snippets/subSet.md diff --git a/snippets/subSet.md b/snippets/subSet.md new file mode 100644 index 000000000..fd8b2fb26 --- /dev/null +++ b/snippets/subSet.md @@ -0,0 +1,21 @@ +--- +title: subSet +tags: array,intermediate +--- + +Checks if the first iterable is a subset of the second one. + +- Use the `new Set()` constructor to create a new `Set` object from each iterable. +- Use `Array.prototype.every()` and `Set.prototype.has()` to check that each value in the first iterable is contained in the second one. + +```js +const subSet = (a, b) => { + const sA = new Set(a), sB = new Set(b); + return [...sA].every(v => sB.has(v)); +}; +``` + +```js +subSet(new Set([1, 2]), new Set([1, 2, 3, 4])); // true +subSet(new Set([1, 5]), new Set([1, 2, 3, 4])); // false +```