【发布时间】:2019-01-30 02:18:52
【问题描述】:
我有一个函数可以在一个月内迭代几天。从那里我用 ngFor 在我的 html 中显示它们。我想将日期数字显示为文本,并将日期名称(星期一、星期二、星期三等)显示为每天的课程。
monthDays = []; // global variable
getDaysInMonth(month, year) {
var date = new Date(year, month);
var days = []; // 1,2,3
var daysName = []; // mon, tue, wed
while (date.getMonth() === month) {
this.monthDays.push({
days: days.push(moment(date).format("D")),
daysName: daysName.push(moment(date).format("M"))
})
date.setDate(date.getDate() + 1);
}
console.log(this.monthDays);
}
因为我需要两个属性(天和天名),所以我将它们推送到一个 monthDays 全局变量数组中,但结果只是月份的数字
Array(31) // I.e Jan getDaysInMonth(1,2019)
0: {days: 1, daysName: 1} // should be days: 1 , daysName: 'Tue'
1: {days: 2, daysName: 2} // should be days: 2 , daysName: 'Wed'
所以我可以在我的 html 中像这样使用对象
<p *ngFor="let x of monthDays" class="{{x.daysName}}" >{{ x.days }}</p>
任何帮助或推动正确的方向都会很棒。
【问题讨论】:
-
最好在询问为什么方法没有按预期工作之前检查文档 -
push返回数组的新长度,而不是变异数组。
标签: javascript arrays angular momentjs