亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在分配優先級時映射字符串數組

如何在分配優先級時映射字符串數組

胡說叔叔 2022-09-11 20:19:23
我想將一些字符串映射到用于對每個字符串進行優先級排序的數字,以下方法工作正常,但我認為這不是最好的方法。關于如何以更好的方式編寫這段代碼的任何建議?  private readonly PRIORITY: Map<string, number> = new Map<string, number>([        ['XDR', 1],        ['PT1M', 2],        ['PT1M_', 2],        ['PT5M', 3],        ['PT5M_', 3],        ['PT15M', 4],        ['PT15M_', 4],        ['PT1H', 5],        ['PT1H_', 5],        ['P1D', 6],        ['P1D_', 6],        ['P7D', 7],        ['P1W', 7],        ['P1M', 8]    ]);    private  getsAsPriorityMap(): Map<string, number> {        const result: Map<string, number> = new Map<string, number>();        const Widgets = ViewManager.getView().getWidgets();        Widgets.forEach(graphWidget => {            const gran = QueryProcessorService.getWidgetApplied(Widget);            if (gran) {                result.set(gran, this.PRIORITY.get(gran));            }        });        return result;    }數組的外觀令人困惑,我想以一種任何人都可以輕松閱讀我代碼的方式編寫
查看完整描述

1 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

如果使用枚舉,它應該如下所示:


enum PRIORITY {

  XDR = 1,

  PT1M = 2,

  PT1M_ = 2,

  PT5M = 3,

  PT5M_ = 3,

  PT15M = 4,

  PT15M_ = 4,

  PT1H = 5,

  PT1H_ = 5,

  P1D = 6,

  P1D_ = 6,

  P7D = 7,

  P1W = 7,

  P1M = 8,

}

你的 getter 看起來類似于以下內容:


 private getsAsPriorityMap(): string[][] {

    const widgets = ViewManager.getView().getWidgets();

    return widgets.reduce((acc, curWidget) => {

      const gran = QueryProcessorService.getWidgetApplied(curWidget);

      acc.push([gran.toString(), PRIORITY[gran].toString()]);

      return acc;

    }, []);

  }


查看完整回答
反對 回復 2022-09-11
  • 1 回答
  • 0 關注
  • 69 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號