新手在这里。 我做了像这样的对象
var myMovie1=
{
title:'Plan 9 from Outer Space',
genre:'Classic',
rating:3,
showTimes:[6,8,11]
};
var myMovie2=
{
title:'Rush',
genre:'Action',
rating:5,
showTimes:[3,6,14]
};
现在创建了一些功能来检查当前时间和电影提醒,如下所示
// function to get date and time
var now =new Date().getHours();
function letsSeeMovie(myMovieSelected){
for (var i = 0; i < myMovieSelected.showTimes.length; i++) {
var showTime=myMovieSelected.showTimes[i];
if (now<showTime) {
return "The next moive starts at " + showTime + "am";
}
else
{
return "sorry you just missed it"
}
}
}
var okcanWeSeeit=letsSeeMovie(myMovie2);
document.write(okcanWeSeeit);
但不知何故,在moive对象中它只显示&#34; 抱歉错过了我 t&#34;。 它剂量**达到11 *并显示下一个播放时间。 我在哪里做错了?感谢。
答案 0 :(得分:2)
您应该在迭代所有myMovieSelected
后返回function letsSeeMovie(myMovieSelected){
for (var i = 0; i < myMovieSelected.showTimes.length; i++) {
var showTime=myMovieSelected.showTimes[i];
console.log(showTime)
if (now<showTime) {
return "The next moive starts at " + showTime + "am";
}
}
return "u miss it"
}
你现在做的是,你迭代第一个元素,如果它不匹配你已经打破了循环
答案 1 :(得分:1)
你的周期中有一个return语句。这意味着,如果错过第一部电影,则不会检查其他放映时间。考虑从“你错过了”条款中删除return语句。
答案 2 :(得分:0)
在上面的代码中,您已经传递了 myMovie2 变量,该变量没有11作为数据。此外,您只进行了一次检查,即在if条件下,您只为一个条件编写return语句。每个人都在指出这一点。