typescript循环数组-打字稿枚举遍历

首先,在TS中,只有两种数据结构,数组[](a[0] = 0,a[1] = 1)typescript循环数组,字典{}(a[“0”] = 0,a[“1” ”] = 1),然后还有两者的结合,枚举也是一个道理。

该语言提供了一个用于遍历对象的套接字(数据结构对象中的 var key)

通过这个socket,可以看到枚举是如何存储的

enum fruit
{
 apple,banana
}
for(var key in fruit)
{
 console.log(key);
}

输出如下:

0
1
apple
banana

有两种类型的输出值:键和数字。 显然typescript循环数组,key就是我们定义的枚举名,而number可能就是枚举值。

enum fruit
{
 apple =3,banana =5
}
for(var key in fruit)
{
 console.log(key);
}

输出如下

3
5
apple
banana

修改代码并输出,证实了我们的猜测。 枚举的本质是存储枚举名和枚举值对象。 事实上,这两个属性作为键相互对应,即可以通过枚举名找到它们。 枚举值,反之,也可以通过枚举值获取枚举名称

for(var key in fruit)
{
 console.log(key);
}

输出如下

数组循环方法_数组循环右移c语言用函数_typescript循环数组

apple
banana
3
5

这样我们就已经把枚举当成一个对象了,只需要判断for给定的key就是我们要使用的枚举名。枚举名和枚举值,一个是数字,一个是数字文本。 该语言提供了强大的判断socket isNaN(变量)的方法。 这个socket可以接收任意类型的对象,然后判断是否是数字,并且可以识别输入的字符串内容是否是数字

接下来我们可以遍历枚举

for(var key in fruit)
{
 var keyToAny:any = key;
 if(isNaN(keyToAny))
 {
 var fruitAnyType:any = fruit[key];
 var fruitEnum:fruit = fruitAnyType;
 console.log(fruitEnum);
 }
}

输出

3
5

如果你想获取所有的枚举名也可以,反之亦然

for(var key in fruit)
{
 var keyToAny:any = key;
 if(!isNaN(keyToAny))
 {
 var fruitAnyType:any = fruit[key];
 var fruitEnum:fruit = fruitAnyType;
 console.log(fruitEnum);
 }
}