免费代码营高尔夫代码
freecodecamp Golf Code
我正试图在freecodecamp中解决Golf Code挑战,但我真的不知道我的代码出了什么问题这是直接链接。链接包含我正在尝试运行的代码,只需访问链接即可。
我的JS:
function golfScore(par, strokes) {
if(strokes == 1) return "Hole-in-one!";
else if(strokes <= par -2) return "Eagle";
else if(strokes === par -1) return "Birdie";
else if(strokes === par) return "Par";
else if(strokes === par + 1) return "Bogey";
else if(strokes === par + 2) return "Double Bogey";
else if(strokes >= par + 3) return "Go Home";
return "Change Me";
}
golfScore(5, 4);
要求:
在高尔夫比赛中,每个洞都有一个标准杆,这意味着高尔夫球手为了将球沉到洞里而完成比赛所需的平均击球次数。根据你的杆数高于或低于标准杆的程度,有一个不同的昵称。
您的函数将传递par-and-stroke参数。根据该表返回正确的字符串,该表按优先级列出笔划;从上(最高)到下(最低):
冲程返回:
1 "Hole-in-one!"
<= par - 2 "Eagle"
par - 1 "Birdie"
par "Par"
par + 1 "Bogey"
par + 2 "Double Bogey"
>= par + 3 "Go Home!"
感谢您提前提供帮助。
您几乎做到了。您的解决方案未被接受的唯一原因是您返回的是Go Home
而不是Go Home!
(请注意末尾的感叹号)。
高尔夫代码FCC:的解决方案
var names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"];
function golfScore(par, strokes) {
if (strokes == 1) return names[0];
else if (strokes <= par - 2) return names[1];
else if (strokes == par - 1) return names[2];
else if (strokes == par) return names[3];
else if (strokes == par + 1) return names[4];
else if (strokes == par + 2) return names[5];
else if (strokes >= par + 3) return names[6];
return "Change Me"; // in case: if non-valid input given
}
console.log(golfScore(5, 4));
对于未来坚持这一点的人来说,OP的代码是合乎逻辑的,只是缺少"quot;在";回家&";。
这提醒我们这类事情有多详细。干杯
我觉得这样的解决方案更干净。使用较少的心理资源。在编写调用之前,您不必反转参数。
var names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"]
function golfScore(par, strokes) {
// Only change code below this line
if (1 == strokes) return names[0];
else if (par -2 >= strokes) return names[1];
else if (par -1 === strokes) return names[2];
else if (par === strokes) return names[3];
else if (par + 1 === strokes) return names[4];
else if (par + 2 === strokes) return names[5];
else if (par + 3 <= strokes) return names[6];
// Only change code above this line
}
// Change these values to test
golfScore(4, 1);
const names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"];
function golfScore(par, strokes) {
// Only change code below this line
if (strokes == 1 ){
return names[0]
}else if (strokes <= par-2){
return names[1]
}else if (strokes == par-1){
return names[2]
}else if (strokes == par ){
return names[3]
}else if (strokes== par +1){
return names[4]
}else if (strokes== par +2){
return names[5]
}else if (strokes >= par +3)
return names[6];
// Only change code above this line
}
我讨厌嵌套的if-else语句。。。除非他们只投了一杆,或者超过标准杆2杆以上,否则在这样的数组中,在"标准杆"的索引中添加(杆数-标准杆)将返回适用的分数。
即。第4段,第3段。阵列中的Par=3,并且3-1=2是Birdie。
我知道这比课程要求的更复杂,但我真的不喜欢嵌套的。。。
function golfScore(par, strokes) {
var arr = ["Eagle", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey"];
switch(true) {
case (strokes == 1): return "Hole-in-one!";
case (strokes - par > 2): return "Go Home!";
default: return arr[arr.indexOf("Par") + (strokes - par)];
}
}
// Change these values to test
golfScore(4, 7);
我的基本JavaScript解决方案:高尔夫代码
function golfScore(par, strokes) {
// Only change code below this line
if(strokes >= par + 3) {
return names[6];
} else if(strokes == par + 2) {
return names[5];
} else if(strokes == par + 1) {
return names[4];
} else if(strokes == 1) {
return names[0];
} else if(strokes == par) {
return names[3];
} else if(strokes == par - 1) {
return names[2];
} else if(strokes <= par - 2) {
return names[1];
}
return "Change Me";
// Only change code above this line
}
var names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"];
function golfScore(par, strokes) {
// Only change code below this line
if(strokes === 1){
return names[0];
}else if(strokes <= par - 2){
return names[1];
}else if(strokes === par - 1){
return names[2];
}else if(strokes === par){
return names[3];
}else if(strokes === par + 1){
return names[4];
}else if(strokes === par + 2){
return names[5];
}else if(strokes >= par + 3){
return names[6];
}
// Only change code above this line
}
// Change these values to test
golfScore(5, 4);
最初的答案很好,但没有使用提供的名称数组。我成功完成了以下挑战:
// Only change code below this line
if(strokes == 1) {
return names[0];
}
if(strokes <= par -2) {
return names[1];
}
if(strokes == par -1) {
return names[2];
}
if(strokes == par) {
return names[3];
}
if(strokes == par +1) {
return names[4];
}
if(strokes == par +2) {
return names[5];
}
if(strokes >= par +3) {
return names[6];
}
return "Change Me";
// Only change code above this line
}
这是我的答案
var names = ["Eagle", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey"];
function golfScore(par, strokes) {
// Only change code below this line
if(strokes == 1) return names[0];
else if(strokes <= par - 2) return names[1];
else if(strokes <= par - 1) return names[2];
else if(strokes == par) return names[3];
else if(strokes <= par + 1) return names[4];
else if(strokes <= par + 2) return names[5];
else {
return names[6];
}
return "Change Me";
// Only change code above this line
}
相关文章:
- 从桌面读取python文件时高亮显示代码
- 如何将函数包装在函数中以避免代码重复
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 货币代码为欧元-金额的格式不应包含小数
- Regex代码只允许一个空格
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 从var向代码隐藏函数传递值
- 如何动态插入jquery代码
- 如何在php变量中嵌入JQuery代码
- 代码不会验证
- 如何从rails中的代码中删除新行( )
- Angularjs代码未在匿名函数中运行
- 如何做到这一点,使代码在不传递条件后执行函数
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 面向对象的Javascript代码在IE7中不起作用
- 将 jQuery 代码添加到 Index.aspx 页面
- 为什么忽略了eval()代码中的语法错误
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- 免费代码营高尔夫代码