【发布时间】:2020-08-01 06:53:58
【问题描述】:
我是 JavaScript 新手(我已经使用 python 大约 3 年了,我目前正在尝试学习 JS 语法的基础知识。)我正在使用 codewars 来促进学习。https://www.codewars.com/kata/5bb904724c47249b10000131/train/javascript
这个问题给出提示
function points(games) {
// your code here
}
规则是:
if x>y -> 3 points
if x<y -> 0 point
if x=y -> 1 point
我的天真的方法是创建一个函数,该函数接收一个数组作为输入,并将 forEach 方法应用于其中的每个元素。但是,我触发了以下错误:Uncaught SyntaxError: Unexpected token 'else'
games = ["0:3","1:2","3:2"]
function points(games){
let p = 0;
games.forEach(
function(game){
let x = game.split(':')[0];
let y = game.split(':')[1];
if(x>y){
p = p + 3};
else if(x=y){
p = p + 1};
else {
p = p + 0;
};
});
};
我想更好地了解 (A) 为什么开始触发此错误,以及 (B) 实现此效果的正确方法是什么。
编辑:我可能需要将 x 和 y 转换为数字类型,但这不会触发当前错误。
【问题讨论】:
-
您的代码中缺少
} -
};developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 上的语法,你是在做赋值,而不是比较。 -
@epascarello 不确定您的评论试图指出什么:
;这里当然不需要,但它也不是“错误的”:它什么也不做。当然,放一个很傻,但是if (x) { ... } ;;;;;;;;;;与if (x) { ... }完全一样:孤立的分号只是一个无用的。 -
@Mike'Pomax'Kamermans 它会产生 "Uncaught SyntaxError: Unexpected token 'else'" 所以是的,它确实会产生错误。
-
啊,在这种情况下,最好提及您评论的各种
};中的哪个(假设有三个)。跨度>
标签: javascript function if-statement foreach