如何从循环中遍历枚举中的条目[重复]
Posted
技术标签:
【中文标题】如何从循环中遍历枚举中的条目[重复]【英文标题】:How to iterate through entries in enumeration from a loop [duplicate] 【发布时间】:2021-08-24 12:04:51 【问题描述】:我在.ts
扩展名的单独文件中创建了下面发布的颜色枚举。我想知道如何在发布的代码中使用或调用for-loop
中的枚举,以便能够迭代抛出它。
换句话说,如何在循环中遍历下面发布的枚举,以便设置ì = 0
RED
以及何时设置i=7
LIME
。
显然,双问市场将被替换为通过枚举的迭代。
代码:
for(let i = 0; i < centerPointsClusters.length;i++)
this.centerPoint = this.APIService.visualisePoint(this.map,centerPointsClusters[i], ??)
枚举:
export enum ColorEnum
RED = "#F44336",
PINK = "#FF4081",
PURPLE = "#9C27B0",
INDIGO = "#536DFE",
BLUE = "#2196F3",
TEAL = "#64FFDA",
GREEN = "#4CAF50",
LIME = "#EEFF41",
YELLOW = "#FFEB3B",
ORANGE = "#FFAB40"
【问题讨论】:
@R.Richards 不,它没有。我想根据循环中 i 的索引遍历枚举 【参考方案1】:AFAIK,打字稿中的枚举基本上是一个对象。所以你可以获取密钥并遍历它
import ColorEnum from './ColorEnum';
const enumKeys = Object.keys(ColorEnum);
for(let i = 0; i < centerPointsClusters.length;i++)
this.centerPoint = this.APIService.visualisePoint(this.map, centerPointsClusters[i], enumKeys[i])
【讨论】:
我得到这个错误:ERROR TypeError: Cannot convert undefined or null to object @LetsamrIt 我猜你还没有导入枚举。import ColorEnum from './ColorEnum'
我按照你说的导入了它。现在我得到空数组
@LetsamrIt 查看更新的答案,尽管您必须确保枚举文件的文件名和路径正确【参考方案2】:
也许你可以使用 obj 代替枚举
const obj =
RED : "#F44336",
PINK : "#FF4081",
PURPLE : "#9C27B0",
INDIGO : "#536DFE",
BLUE : "#2196F3",
TEAL : "#64FFDA",
GREEN : "#4CAF50",
LIME : "#EEFF41",
YELLOW : "#FFEB3B",
ORANGE : "#FFAB40"
;
const iterateObj = () =>
for(let i in obj)
console.log(i, obj[i]);
【讨论】:
以上是关于如何从循环中遍历枚举中的条目[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 React JSX 中循环遍历数组中的某些项目 [重复]