想象一下,你有一个电影收藏,你想编写的代码可以为每个收集回复你的评论。这是电影和你的评论:

时间:2017-02-14 13:57:43

标签: javascript jquery angularjs

我感到困惑,如何完成这项任务

  

想象一下,你有一个电影收藏,你想要编写代码   返回每个评论。这是电影和你的   评论:

"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.")}
    };
有些人认为这是正确的做法。

3 个答案:

答案 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")