枚举对象作为字典键

时间:2018-05-20 17:51:54

标签: javascript

我想在JavaScript中使用所谓的“enum”对象作为字典键(实际上,它也是字典AFAIK)。

这不起作用:

    var State ={DEFAULT:0,ACTIVE:1 ,INACTIVE:2,ALERT:3};

    var statesDict =  {
      State.ACTIVE : {color:0x00ff00}
      State.INACTIVE: {color:0x000000}
    };

虽然这个:

   var State ={DEFAULT:0,ACTIVE:1 ,INACTIVE:2,ALERT:3};

    var statesDict =  {
      1: {color:0x00ff00}
      2: {color:0x000000}
    };

为什么呢? State.{prop name}是不应该被它的值取代?

1 个答案:

答案 0 :(得分:6)

您可以使用computed property names括号。

var State = { DEFAULT: 0, ACTIVE: 1, INACTIVE: 2, ALERT: 3 },
    statesDict = {
        [State.ACTIVE]: { color: 0x00ff00 },
        [State.INACTIVE]: { color: 0x000000 }
    };

console.log(statesDict);