我有枚举,它来自后端

这是枚举

    export enum InquiryStatus {
    _0 = 0,
    _1 = 1,
    _2 = 2,
}


我创建枚举,用在下拉列表中,像这样

  export enum InquiryStatuses {
    Pending = InquiryStatus._0,
    Quoted = InquiryStatus._1,
    Lost = InquiryStatus._2,
}


然后填充数组,像这样

filter: SelectItem[] = [];
     ngOnInit(): void {
        this.filter = [
            { label: 'Pending', value: InquiryStatuses.Pending },
            { label: 'Quoted', value: InquiryStatuses.Quoted },
            { label: 'Lost', value: InquiryStatuses.Lost },
        ];
    }


我需要在函数中进行填充。即,将数组的名称和名称作为参数,并将填充的数据返回到数组。
我怎样才能正确地做到这一点?

最佳答案

这样做的常见方式可能是这样的:

this.filter = Object.keys(InquiryStatuses)
                  .filter(k => typeof InquiryStatuses[k] === 'number')
                  .map(label => ({ label, value: InquiryStatuses[label] })))


由于Typescript在转换为对象时会将枚举中的属性“加倍”,因此我们必须首先对其进行过滤。

10-08 07:41