作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以,我有以下功能
function toDays(startDateString, endDateString) {
const startDate = moment(startDateString, 'dddd MMM DD YYYY');
const endDate = moment(endDateString, 'dddd MMM DD YYYY');
const dates = [];
while(startDate.isSameOrBefore(endDate, 'day')) {
const currentDay = startDate.format('dddd');
dates[currentDay].push({start:'9:00', end:'18:00'});
startDate.add(1, 'days');
}
return dates;
}
const result = toDays('Monday Dec 24 2018', 'Friday Dec 28 2018');
console.log(result);
当我使用 dates[currentDay].push({start:'9:00', end:'18:00'}); 时,它返回错误
,我想要实现的是在当前日期推送这些键,就像将对象推送到数组一样。错误是Uncaught TypeError:无法读取未定义的属性“push”
但是,如果我使用日期[当前日期] = {开始:'9:00', 结束:'18:00'};
它工作得很好,但我不确定这是否是正确的方法。有什么想法吗?
最佳答案
首先检查dates[currentDay]是否存在。如果没有,则在推送之前执行“dates[currentDay] = []”。
dates[currentDay] = {start:'9:00', end:'18:00'} 正在工作,因为它直接在该位置分配一个对象,该位置最初是未定义的。
关于javascript - 将 obj 推送到 arr 时函数输出奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53944191/
我是一名优秀的程序员,十分优秀!