db-vendo-client/parse/products-bitmask.js

27 lines
491 B
JavaScript
Raw Normal View History

const parseBitmask = ({profile}, bitmask) => {
const res = {};
for (let product of profile.products) {
res[product.id] = false;
}
const bits = bitmask.toString(2)
.split('')
.map(i => parseInt(i))
.reverse();
for (let i = 0; i < bits.length; i++) {
if (!bits[i]) {
continue;
} // ignore `0`
const product = profile.products.find(p => p.bitmasks.includes(Math.pow(2, i)));
if (product) {
res[product.id] = true;
}
2017-11-27 19:39:18 +01:00
}
return res;
};
2017-11-27 19:39:18 +01:00
2022-05-07 16:17:37 +02:00
export {
parseBitmask,
};