首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >他为什么写movie.haveWatched,movie.title,movie.rating?

他为什么写movie.haveWatched,movie.title,movie.rating?
EN

Stack Overflow用户
提问于 2018-06-13 16:09:37
回答 3查看 36关注 0票数 0

这段代码是由我的在线教师colt (网络开发入门教师)编写的,但是我不明白他为什么写movie.haveWatched,movie.title,movie.rating。我认为应该有movieDb.haveWatched,movieDb.title,movieDb.rating,因为haveWatched,标题,评级都在movieDb里面。

代码语言:javascript
复制
var movieDb = [ { title:"gujja",
                  rating:5,
                  haveWatched:true, },
                { title:"la",
                  rating:5,
                  haveWatched:false,}];
movieDb.forEach(function(movie){
        var result = "you have ";
       if (movie.havewatched){
          result += "watched ";
}else {
          result += "not seen ";
}
result += `${movie.title} -`
result += `${movie.rating}`
console.log(result);
});

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-13 16:16:37

movieDb是一个对象数组。

在这项职能中:

代码语言:javascript
复制
movieDb.forEach(function(movie){
//code
}

movieDb正在被迭代,数组中的每个元素都被执行。

所以movie是一个变量,在forEach函数中。

票数 0
EN

Stack Overflow用户

发布于 2018-06-13 16:14:03

forEach是一个高阶函数。在本例中,movie引用数组的每个元素,每次都是传递给forEach内部的回调函数。

有关此方法的更多信息,请参见:Objects/Array/forEach

事实上,你可以随便给它取名字。这也是有效的代码,但可能没有多大意义:

movieDb.forEach(function(callItAnything){ var result = "you have "; if (callItAnything.havewatched){ result += "watched "; } else { result += "not seen "; } result += `${callItAnything.title} -` result += `${callItAnything.rating}` console.log(result); });

另外,学习正确地缩进代码是非常有用的:)

票数 0
EN

Stack Overflow用户

发布于 2018-06-13 16:17:30

以下是理解代码的要点

  • 您的数据位于movieDb 数组中,其中包含2电影
  • 每个电影都是一个具有haveWatchedtitlerating属性的对象
  • forEach 函数迭代数组,并一次将数组中的一个项传递给回调函数。
  • movieDb.forEachmovieDb数组上迭代,并向回调函数提供电影对象
  • 现在,回调函数有一个具有上述属性的对象,这些属性由dot operator (.)访问。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50841774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档