与chmod相似,我想使用1、2、4作为通知方式。
1 = Email
2 = SMS
4 = Push notifications
是否有功能(最好在javascript中)可以输入数字(以上)并可以返回带有以下内容的对象:
{
email: true,
sms: true,
push: false
}
我希望函数不被硬编码。我不想要一堆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);
Working example here。
扩展示例:
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])
}
Working example here