for...of
loop over a Set
created from the first array.Array.prototype.some()
to check if all distinct values are contained in the second array.Array.prototype.filter()
to compare the number of occurrences of each distinct value in both arrays.false
if the count of any element is greater in the first array than the second one, true
otherwise.const isContainedIn = (a, b) => {
for (const v of new Set(a)) {
if (
!b.some(e => e === v) ||
a.filter(e => e === v).length > b.filter(e => e === v).length
)
return false;
}
return true;
};
isContainedIn([1, 4], [2, 4, 1]); // true
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️