TIM*_*MEX 2 javascript algorithm math binary
与chmod类似,我想使用1,2,4作为通知方式.
1 = Email
2 = SMS
4 = Push notifications
Run Code Online (Sandbox Code Playgroud)
是否有函数(最好是在javascript中)可以输入一个数字(上面)并且可以返回一个对象:
{
email: true,
sms: true,
push: false
}
Run Code Online (Sandbox Code Playgroud)
我希望函数不被硬编码.我不想要一堆if语句检查每个组合.我想要一种"聪明"的方式来做到这一点.
这样的事情怎么样:
var commsMode = {
email: 1,
sms: 2,
push: 4,
toObject: function(val){
var rt = {};
for (e in commsMode) {
rt[e] = (val & commsMode[e]) > 0;
}
return rt;
}
};
var obj = commsMode.toObject(3);
Run Code Online (Sandbox Code Playgroud)
扩展示例:
var commsMode = {
email: 1,
sms: 2,
push: 4,
mode4: 8,
mode5: 16,
mode6: 32,
mode7: 64,
mode8: 128,
toObject: function(val){
var rt = {};
for (e in commsMode) {
rt[e] = (val & commsMode[e]) > 0;
}
return rt;
}
};
var obj = commsMode.toObject(233);
for (p in obj) {
alert(p + ': ' + obj[p])
}
Run Code Online (Sandbox Code Playgroud)