我在Angular 5应用中具有以下枚举:
export enum Month {
JAN='January',
FEB='February',
MAR='March',
APR='April',
MAY='May',
JUN='June',
JUL='July',
AUG='August',
SEP='September',
OCT='October',
NOV='November',
DEC='December'
}
我想做的是遍历值并将它们与日期进行比较 字段中,我在代码中的某处类似:
date.getMonth() which return number 0-11
我可以遍历枚举,但是我无法获得序数! 我已经尝试了两种解决方案:
for (let month in Month) {
var months = Object.keys(Month);
for (let month of months)
两个解决方案均返回字符串,例如“ JAN”。
答案 0 :(得分:3)
您可以创建enum的实例,并通过Object.keys方法对其进行迭代
TS文件
export class AppComponent {
name = 'Angular';
month = Month;
constructor(){
}
keyinenum() : Array<string> {
var keys = Object.keys(this.month);
return keys.slice();
}
}
HTML
<div *ngFor="let item of keyinenum()">
{{ item }}
</div>
更新:
如果您只想从0-11月份获取月份,则可以使用此方法
getValueByIndex(inputindex) {
var keys = Object.keys(this.month);
let result = "";
keys.forEach((obj, index) => {
if (inputindex == index) {
result = Month[obj];
}
});
return result;
}
https://stackblitz.com/edit/angular-iterate-enum?file=src/app/app.component.ts