请看看这段代码并告诉我为什么不起作用?我认为功能返回存在问题。感谢所有重播。
var movie1 = {
title: "Buckaroo Banzai",
genre: "Cult classic",
rating: 5,
showtimes: ["1:00pm", "3:00pm", "7:00pm"]
}
function getNextShowing(movie) {
var now = new Date().getTime();
for (var i = 0; i < movie.showtimes.length; i++) {
var showtime = getTimeFromString(movie.showtimes[i]);
if ((showtime - now) > 0) {
return "Next showing of " + movie.title + " is " + movie.showtimes[i];
}
}
return null;
}
function getTimeFromString(timeString) {
var theTime = new Date();
var time = timeString.match(/(\d+)(?::(\d\d))?\s*(p?)/);
theTime.setHours( parseInt(time[1]) + (time[3] ? 12 : 0) );
theTime.setMinutes( parseInt(time[2]) || 0 );
return theTime.getTime();
}
var nextShowing = getNextShowing(movie1);
alert(nextShowing);
答案 0 :(得分:1)
问题在于这行代码:
if ((showtime - now) > 0)
(showtime - now)
始终小于零,因此getNextShowing()
函数始终返回null
;
答案 1 :(得分:0)
我测试了上面的代码,当我的计算机中的时间大于或等于晚上7点时,它只返回null。
否则它工作正常。尝试更改showtimes数组的时间,以便它们超前于计算机中的当前时间。或者尝试在早上运行它:)。 我认为这就是你需要做的一切。