Javascript 他为什么写电影。看了电影,电影。片名,电影。收视率?
这段代码是我的在线老师柯尔特·斯蒂尔(网络开发训练营老师)写的,但我不明白他为什么写movie.haveWatched、movie.title、movie.rating。我认为应该有movieDb.haveWatched,movieDb.title,movieDb.rating,因为haveWatched,title,rating都在movieDb里面Javascript 他为什么写电影。看了电影,电影。片名,电影。收视率?,javascript,arrays,Javascript,Arrays,这段代码是我的在线老师柯尔特·斯蒂尔(网络开发训练营老师)写的,但我不明白他为什么写movie.haveWatched、movie.title、movie.rating。我认为应该有movieDb.haveWatched,movieDb.title,movieDb.rating,因为haveWatched,title,rating都在movieDb里面 var movieDb=[{title:“gujja”, 评级:5, 我看过了:没错,}, {标题:“洛杉矶”, 评级:5, haveWatc
var movieDb=[{title:“gujja”,
评级:5,
我看过了:没错,},
{标题:“洛杉矶”,
评级:5,
haveWatched:false,}];
movieDb.forEach(函数(电影){
var result=“您有”;
如果(电影,看了){
结果+=“观看”;
}否则{
结果+=“未看到”;
}
结果+=`${movie.title}-`
结果+=`${movie.rating}`
控制台日志(结果);
});
forEach
是一个高阶函数。
movie
在本例中,指数组的每个元素,当它被传递到forEach
中的回调函数时,一次一个
有关此方法的详细信息,请参见:
事实上,你可以给它取任何你想要的名字。
这也是有效的代码,但可能没有多大意义:
movieDb.forEach(函数(callItAnything){
var result=“您有”;
如果(打电话给任何事情,看了){
结果+=“观看”;
}否则{
结果+=“未看到”;
}
结果+=`${callItAnything.title}-`
结果+=`${callItAnything.rating}`
控制台日志(结果);
});
另外,学习如何正确缩进代码也是非常有用的:)movieDb是一个对象数组 在该功能中:
movieDb.forEach(function(movie){
//code
}
正在迭代movieDb,并对数组中的每个元素执行操作
因此,
movie
是forEach函数中的一个变量。以下是理解代码的要点
- 您的数据在
数组中,其中有两部电影李>movieDb
- 每部电影都是一个对象,具有属性
、已观看
和标题
李>评级
函数对数组进行迭代,并一次性将数组中的1项传递给回调函数forEach
迭代movieDb.forEach
数组,并为回调函数提供一个电影对象movieDb
- 现在,回调函数有一个具有上述属性的对象,该对象正被
点运算符(.)访问。
- 每部电影都是一个对象,具有属性