我有一个这样的枚举,

enum Traits {
    None = 0,
    Friendly = 1 << 0, // 0001
    Mean = 1 << 1,     // 0010
    Funny = 1 << 2,    // 0100
    Boring = 1 << 3,   // 1000
    All = ~(~0 << 4)   // 1111
}


let traits = Traits.Mean | Traits.Funny
console.log(traits);


该控制台将记录6。怎么做相反呢?
如果我通过6。我想获得Traits.Mean , Traits.Funny

最佳答案

您可以执行以下操作:

for (var prop in Traits) {
  if(Traits[prop] & 6) {
    console.log(prop);
  }
}

10-08 14:40