枚舉enum
在日常的代碼管理中,經(jīng)常會遇到管理一系列的數(shù)據(jù)值,比如管理成績時可以在數(shù)據(jù)庫中對語文、數(shù)學(xué)、英語進行編號而不直接使用名稱,在前端對這類數(shù)據(jù)管理,比較常用的就是枚舉類型,這里說的是enum的使用
枚舉語法:
export enum OptionType {
'無' = 0,
'年度' = 1,
'半年度' = 2,
'季度' = 3,
'月度' = 4,
'半月' = 5,
'雙周' = 6,
'日' = 7
'其他' = 8,
}
在使用時訪問值的寫法是:OptionType[0],即可獲取字符串:'無'
有需求要將其作為下拉菜單中的選項時,需要用到對枚舉的遍歷,主要分為以下2種:
1.當(dāng) = 左右同值時:
enum PeriodDefine { days = 'days', weeks = 'weeks', months = 'months', quarters = 'quarters', years = 'years', }
可以使用Object.keys使其可以被遍歷,真正的是對于值的重新定義才可行,然后拼接數(shù)組
let typeOption = [];
Object.keys(PeriodDefine).forEach(item => {
let label = '';
switch (item) {
case 'years':
label = '年';
break;
case 'quarters':
label = '季';
break;
case 'months':
label = '月';
break;
case 'weeks':
label = '周';
break;
default:
label = '日';
break;
}
this.typeOption.push({ value: item, label });
});
2.當(dāng) = 左右不同時
enum Type{ '國際'=0, '國內(nèi)'=1, '省'=2, '市'=3 }
這時,使用1的方法得到的是:

可以看到,當(dāng)只想要將數(shù)字作為value,會得不到直接的想要的答案。
這時候,如果值是有數(shù)組索引的規(guī)律的話,可以不使用枚舉,而直接使用數(shù)組來管理比較好,要注意數(shù)據(jù)的順序。
但是依然想用枚舉的話,可能用1的方法就不那么理想了,多出很多代碼不說,枚舉也失去了方便的意義

浙公網(wǎng)安備 33010602011771號