Problems › JavaScript › patterns
Does this account hold every right
Access control packs rights into a bitfield. A guard checks whether an account holds all of the rights an action needs.
- Both values are bitfields: a set bit means that right is present or required.
- Return true only when every required right is also held.
- Requiring nothing is always satisfied.
- Extra rights the account holds do not matter.
holdsEveryRight(held: int, needed: int) → bool
Where you start
function holdsEveryRight(held, needed) {
}
Worked examples
| Call | Result |
|---|---|
holdsEveryRight(7, 5) | true |
holdsEveryRight(5, 7) | false |
holdsEveryRight(0, 0) | true |
holdsEveryRight(8, 0) | true |
Hint
Mask what is held against what is needed. If the masked result still equals what was needed, nothing was missing.
Reference solution in JavaScript
function holdsEveryRight(held, needed) {
return (held & needed) === needed;
}