在javascript数组中按值获取索引

mon*_*d98 4 javascript arrays enums object typescript

阅读打字稿中的'enum',我看到这段代码编译成了javascript.

var Season = [];
Season[Season["Spring"] = 0] = "Spring";
Season[Season["Summer"] = 1] = "Summer";
Season[Season["Fall"] = 2] = "Fall";
Season[Season["Winter"] = 3] = "Winter";

console.log(Season.Spring); // 0
console.log(Season[0]); // Spring
Run Code Online (Sandbox Code Playgroud)

并且,如果我在第一行将Season改为{}空objext,这也有效,这是有道理的.我不知道发生了什么事.这是什么?

编辑:是的.这不是编译器生成的.编译器使用空对象.但是,如果我将其更改为空数组.它仍然有效.我的问题是为什么数组也很好.起初我的问题包括两个版本,但有人编辑了问题并删除了对象使用版本.

c-s*_*ile 5

这个:

Season[Season["Spring"] = 0] = "Spring";
Season[Season["Summer"] = 1] = "Summer";
Season[Season["Fall"] = 2] = "Fall";
Season[Season["Winter"] = 3] = "Winter";`
Run Code Online (Sandbox Code Playgroud)

在Season对象中创建八个属性:

Season["Spring"] = 0;
Season["Summer"] = 1;
Season["Fall"] = 2;
Season["Winter"] = 3;
Season[0] = "Spring";
Season[1] = "Summer";
Season[2] = "Fall";
Season[3] = "Winter";
Run Code Online (Sandbox Code Playgroud)

在那个季节之后可以要求:

  1. 按文字获取其索引(前四个属性)
  2. 通过索引获取其文本(后四个属性)