我一直在为初学者读书," First-Head HTML5 Programming"并且有这段代码:
var movie2 = {
title: "Forbidden Planet",
genre: "Classic Sci-fi",
rating: 5,
showtimes: ["5:00pm", "9:00pm"]
};
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();
}
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;
}
目前,如果我致电getNextShowing(movie2)
,它将返回下一次显示的时间是下午5:00。
我将循环条件更改为&#34; i &lt; = movie.showtimes.length;&#34;但它仍然只运行一次,只显示下午5:00。
即使我重写了这个函数,循环也只迭代一次:
function getNextShowing(movie) {
var now = new Date().getTime();
for (var i = 0; i <= movie.showtimes.length; i++) {
var showtime = getTimeFromString(movie.showtimes[i]);
return "Next showing of" + movie.title + " is " + movie.showtimes[i];
}
return null;
}
我在这里没有得到什么?
在第一次迭代i = 0时,循环运行并在索引0处显示showtimes
项。之后它的i = 1并且它应该在索引1上显示项目,不是吗?
不应该跑两次吗?
答案 0 :(得分:2)
您必须知道return关键字的详细信息。
您可以查看this link了解更多详情。谢谢。
答案 1 :(得分:1)
如果像我这样的任何可怜的白痴患有这个&#34;问题&#34; - 它全部是因为return
结束了函数执行。 Jeeze ..