832 B
832 B
title, tags
| title | tags |
|---|---|
| isContainedIn | array,intermediate |
Returns true if the elements of the first array are contained in the second one regardless of order, false otherwise.
- Use a
for...ofloop over aSetcreated from the first array. - Use
Array.prototype.some()to check if all distinct values are contained in the second array, useArray.prototype.filter()to compare the number of occurrences of each distinct value in both arrays. - Return
falseif the count of any element is greater in the first array than the second one,trueotherwise.
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