javascript - 在javascript数组中按值获取索引

标签 javascript arrays object enums typescript

阅读 typescript 中的“枚举”,我看到这段代码已编译为 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

而且,如果我在第一行将 Season 更改为 {} empty objext,这也有效并且有意义。 我不知道发生了什么事。 这是什么?

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

最佳答案

这个:

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

在 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";

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

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

关于javascript - 在javascript数组中按值获取索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35075188/

相关文章:

arrays - Matlab:使用较小的数组创建更大的数组

arrays - MongoDB:按数组索引排序

javascript - 更改自己对象中函数内对象的属性

javascript - JavaScript 对象的继承

javascript - 理解有点奇怪的 javascript 数组表示法

javascript - 如何将日期选择器格式从 "mm/dd/yy"更改为 "yy/mm/dd"?

javascript - 使用 JQuery 设置隐藏字段的值

java - 为数组的每个元素分配一个名称?

javascript - 使用对象引用调用 setinterval

javascript - $(function() { ....}) 在 JQuery 中做什么?