我正在使用项目中的js
处理日历,以确保其正常工作。但是当我有一条开始日期等于结束日期的记录时。
用于将事件添加到我的日历中,我正在使用此推:
listDate.push({startDate :strDate, endDate : enDate});
在我的脚本datetimepicker
中,这是函数isAvailable
isAvailable: function(date, month, year) {
for (var i in this.unavailable) {
var book_date = this.unavailable[i].startDate.split("-");
if (book_date.length !== 3) {
return false;
} else if (
(book_date[0] == "*" || book_date[0] - year === 0) &&
(book_date[1] == "*" || book_date[1] - month === 0) &&
(book_date[2] == "*" || book_date[2] - date === 0)
) {
return false;
}
}
return true;
}
我遇到以下问题:Cannot read property 'split' of undefined in this line
var book_date = this.unavailable[i].startDate.split("-");
请帮助您
答案 0 :(得分:0)
List(Right(3), Left("error x"), Right(7)).partitionMap(identity)
// (List[String], List[Int]) = (List(error x), List(3, 7))
未定义。 this.unavailable[i].startDate
引用了listDate
还是其他数组?放置断点或使用this.unavailable
在console.log
函数中检查this.unavailable
的内容。
答案 1 :(得分:0)
代码在控制台中没有给我任何错误。您是否可以尝试将unavailable
的值存储在单独的变量中,而改用该变量。这可能会有帮助。
isAvailable: function(date, month, year) {
var unavailable = this.unavailable;
for (var i in unavailable) {
var book_date = unavailable[i].startDate.split("-");
if (book_date.length !== 3) {
return false;
} else if (
(book_date[0] == "*" || book_date[0] - year === 0) &&
(book_date[1] == "*" || book_date[1] - month === 0) &&
(book_date[2] == "*" || book_date[2] - date === 0)
) {
return false;
}
}
return true;
}
答案 2 :(得分:0)
您正在使用for in循环遍历数组-for in循环仅应在对象上使用。您应该使用普通的for循环或forEach
isAvailable: function(date, month, year) {
for (var i = 0; i < this.unavailable.length; i++) {
var book_date = this.unavailable[i].startDate.split("-");
if (book_date.length !== 3) {
return false;
} else if (
(book_date[0] == "*" || book_date[0] - year === 0) &&
(book_date[1] == "*" || book_date[1] - month === 0) &&
(book_date[2] == "*" || book_date[2] - date === 0)
) {
return false;
}
}
return true;
}