将枚举数转换为字符串 [重复]
Posted
技术标签:
【中文标题】将枚举数转换为字符串 [重复]【英文标题】:Convert Enum Number To String [duplicate] 【发布时间】:2019-02-21 03:28:26 【问题描述】:我有一个枚举文件,其中我为 PaymentTypes 定义了一个对象:
export enum PaymentTypes
Invoice = 1,
CreditCard = 2,
PrePayment = 3,
现在,当我从我的数据库中以数组的形式接收数据时,我还会以数字形式接收 PaymentType:
order:
[
"id": 0, "name": "Available", "PaymentType": 1 ,
"id": 1, "name": "Ready", "PaymentType": 3 ,
"id": 2, "name": "Started", "PaymentType": 2
];
现在我的问题是,如何过滤掉数组中的每种支付类型,并将数字转换为枚举文件中定义的字符串,以便我可以使用这些数据将其显示给前端的用户?
所以我有这样的东西可以使用:
orderFiltered:
[
"id": 0, "name": "Available", "PaymentType": "Invoice" ,
"id": 1, "name": "Ready", "PaymentType": "PrePayment" ,
"id": 2, "name": "Started", "PaymentType": "CreditCard"
];
【问题讨论】:
就像PaymentTypes[1]
一样简单
【参考方案1】:
您可以使用map
创建一个新的对象数组,其中包含原始数据和枚举成员的名称,您可以使用PaymentTypes[PaymentType]
获取这些对象
let order = [
"id": 0, "name": "Available", "PaymentType": 1 ,
"id": 1, "name": "Ready", "PaymentType": 3 ,
"id": 2, "name": "Started", "PaymentType": 2
];
enum PaymentTypes
Invoice = 1,
CreditCard = 2,
PrePayment = 3,
let orderFiltered = order.map(o => Object.assign(, o, PaymentTypeDisplayName: PaymentTypes[o.PaymentType] ));
console.log(orderFiltered);
但需要注意的一点是,使用枚举成员名称作为显示可能不是最友好的使用体验。
【讨论】:
以上是关于将枚举数转换为字符串 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
将 Typescript 枚举从字符串转换为数字(角度)[重复]