枚举idea
小于 1 分钟
枚举idea
有以下枚举对象:
- A
- B
- C 但是在我们实际使用过程中需要的是:
- AB
- ABC
- BC 这样的。 如果安装常规方法就需要把这些组合都定义一个枚举元素,但是当组合过多时,需要的枚举元素就更多了,那么如何对其简化呢? 我们以
js为例子: 首先定义一个枚举类(在这里使用object代替)
let enum_example = {
A:1<<2,
B:1<<3,
C:1<<4
}
在这里我们对每一种子组合定义一个二进制数,当我们需要枚举表示AB时,我们可以:
enum_example.A | enum_example.B
这样表示出来的数就是AB。那么如何从AB本身获取到A和B呢?可以参考这个函数:
function get_enum_from_multiple_code(code){
let enum_array = []
for( key in enum_example ){
let judgement = code & enum_example[key]
if (judgement > 0){
enum_array.push(key)
}
}
return enum_array
}
这个函数就可以获取到了A和B。这个方法有点像等长编码。