Javascript 编解码器功能/开关
我正在通过我的密码工作。我需要创建一个函数,该函数采用电影名称,并根据输入的电影提供电影评论。我需要使用Javascript 编解码器功能/开关,javascript,Javascript,我正在通过我的密码工作。我需要创建一个函数,该函数采用电影名称,并根据输入的电影提供电影评论。我需要使用switch语句来执行此操作 它要求用户创建一个名为getReview的函数,他必须使用开关来提供可能的输出。我不确定函数和开关之间的语法/关系。以下是我写的: var getReview = function (movie) { switch (movie) { case "Toy Story 2": "Great story. Mean pr
switch
语句来执行此操作
它要求用户创建一个名为getReview
的函数,他必须使用开关来提供可能的输出。我不确定函数和开关之间的语法/关系。以下是我写的:
var getReview = function (movie) {
switch (movie) {
case "Toy Story 2":
"Great story. Mean prospector."
break;
case "Finding Nemo":
"Cool animation, and funny turtles"
break;
case "The Lion King":
"Great songs."
break;
default:
"I don't know!"
break;
}
};
Codecademy问我“你确定返回的是正确的东西吗?”仅仅在语句中放入一个字符串对它没有任何作用。函数应该返回消息,所以你必须使用return
语句
var getReview=函数(电影){
开关(电影){
案例“玩具总动员2”:
return“伟大的故事,卑鄙的探矿者”
打破
“寻找尼莫”一案:
返回“酷动画和有趣的海龟”
打破
案例“狮子王”:
返回“伟大的歌曲”
打破
违约:
return“我不知道!”
打破
}
};
警报(getReview(提示(“什么电影?”));
您应该在每个案例中添加一个return语句
通常,您希望在交换机中的每个案例
中添加break
语句。但是,由于您正在return
ing,因此交换机不可能“崩溃”。如果您不确定这意味着什么,请查看以下示例:
switch (x) {
case 1:
console.log("hi #1")
case 2:
console.log("hi #2")
break;
case 3:
console.log("hi #3")
break;
}
如果x==1
,则
hi #1
hi #2
将出现在控制台中。将其与如果x==2
或x==3
进行比较。则控制台中分别只会出现“hi#2”
或“hi#3”
这是因为,在完成案例1
后,计算机会继续运行:您需要中断
来停止它。但是,通过返回
ing,您基本上调用了中断
,因为函数返回,因此不会继续通过案例
不管怎样,我都是这样设置的:
var getReview = function (movie) {
switch (movie) {
case "Toy Story 2": return "Great story. Mean prospector."
// all your other cases
default: return "movie not in library"
}
}
或者(语法不是很清晰),您可以在末尾返回一个变量:
var getReview = function (movie) {
var line = ""
switch (movie) {
case "Toy Story 2":
line = "Great story. Mean prospector."
break;
// all your other cases
default:
line = "movie not in library"
break; // this `break` is optional
}
return line
}
嗯,你不返回任何东西。要返回,你需要使用return
。你的函数没有任何return
语句,所以它不返回任何东西。我喜欢return变量,而不是10个不同的返回。@Hanoncs我也喜欢。我只是觉得这是一个很好的教授OP的机会,所以我想包括另一个p可能性。加上1,太糟糕的堆栈用户现在都很刻薄,像这样的事情值得投票。谢谢royhowie!这是一个非常有启发性的回答。我喜欢单一返回语句的优雅。这是我在这个网站上遇到的第一个问题。谢谢你,先生。我对编码非常陌生,你可以告诉我。我猜是个愚蠢的错误。