无法从对象

时间:2015-06-08 02:30:16

标签: javascript

新手在这里。 我做了像这样的对象

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 *并显示下一个播放时间。 我在哪里做错了?感谢。

3 个答案:

答案 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语句。每个人都在指出这一点。