Check if an array is a subset of another array
Return true when every value of subset appears in of.
function isSubset({ subset, of }) { const all = new Set(of); return subset.every(value => all.has(value)); }
Input & expected output
Input
{
"subset": [
"[email protected]"
],
"of": [
"[email protected]",
"[email protected]"
]
}Expected output
trueThe edge case
Input
{
"subset": [
"[email protected]"
],
"of": []
}Expected output
falseKnow the limits
- The original comment said “b is a subset of a” while its code tested the opposite, and its second variant compared joined strings. Named fields remove the ambiguity.
- Values compare with SameValueZero; objects by reference.
The function above is the implementation used by the lab. The lab validates JSON types and caps size before execution; include equivalent validation when accepting untrusted input in your application.
Source & maintenance
Based on Check if an array is subset of other array from the original 1loc collection by Nguyen Huu Phuoc, with lupu60. Copyright (c) 2020 phuoc-ng. MIT licensed.
Rewritten with named fields; the original comment contradicted its code and its second variant compared joined strings. Original MDX retained as inert source evidence.
Maintained by Oveyon. Source commit: 14b481cf60df. Read the license.
Keep exploring
- Check whether all values are equal — Compare every item with the first using Object.is.
- Check whether an object is empty — Check for own enumerable string keys on a JSON object.
- Check whether an integer is even — Test parity for safe integers, including zero and negative values.