我感到困惑,如何完成这项任务
想象一下,你有一个电影收藏,你想要编写代码 返回每个评论。这是电影和你的 评论:
"Toy Story 2" - "Great story. Mean prospector." "Finding Nemo" - "Cool animation, and funny turtles." "The Lion King" - "Great songs."
编写一个名为getReview的函数,它接受一个电影名称和 根据上述信息返回其评论。如果给一部电影 找不到名字只返回“我不知道!”。使用在中学习的结构 一个早期的课程(不是if if / else语句)来编写这个函数。
var getReview = function (movie) {
var a = ["Toy Story 2","Finding Nemo","The Lion King"]
for(a[0]="Toy Story 2"){console.log("Great story. Mean prospector.")}
for(a[0]="Finding Nemo"){console.log("Cool animation, and funny turtles.")}
for(a[0]="The Lion King" ){console.log( "Great songs.")}
};
有些人认为这是正确的做法。
答案 0 :(得分:2)
使用对象执行此操作而不是数组。这样您就可以使用电影标题作为查找评论的关键字。这样,检索数据的逻辑就是访问对象 - 在函数中包装它将在很大程度上是多余的。试试这个:
var movies = {
"Toy Story 2": "Great story. Mean prospector.",
"Finding Nemo": "Cool animation, and funny turtles.",
"The Lion King": "Great songs."
}
var options = Object.keys(movies).map(function(k) {
return '<option>' + k + '</option>';
})
$('select').html(options.join('')).change(function() {
$('div').html(movies[this.value]);
}).change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select></select>
<div></div>
上述重要部分是使用movies[key]
来检索评论文本。
答案 1 :(得分:2)
function getReview(movie) {
const reviews = {
"Toy Story 2": "Great story. Mean prospector.",
"Finding Nemo": "Cool animation, and funny turtles."
"The Lion King": "Great songs."
}
return reviews[movie] || 'Not Found'
}
答案 2 :(得分:1)
您应该正确创建数据结构。
var getReview = function (movie) {
var array = [{
"name": "Toy Story 2",
"review" : "Great story. Mean prospector."
}];
var m = array.filter(x => x.name == movie);
console.log(m.length ? m[0].review : "Not Found")
};
getReview("Toy Story 2")
getReview("Toy Story 3")