在1000下查找3和5的倍数时出现Javascript语法错误
语法错误是因为需要反转:和?编写适当的三元运算符在1000下查找3和5的倍数时出现Javascript语法错误,javascript,Javascript,语法错误是因为需要反转:和?编写适当的三元运算符 (i%3==0 || i%5==0) : arr.push(i) ? continue ^ SyntaxError: Unexpected token : 尽管说实话,你其实并不需要三元运算符,因为这是你循环的唯一一行。continue实际上不会跳过任何内容,实际上正如所指出的,不能用作表达式 只需使用一个基本条件 (i%3==0 || i%5==0) ? arr.push(i) : continue
(i%3==0 || i%5==0) : arr.push(i) ? continue
^
SyntaxError: Unexpected token :
尽管说实话,你其实并不需要三元运算符,因为这是你循环的唯一一行。continue实际上不会跳过任何内容,实际上正如所指出的,不能用作表达式
只需使用一个基本条件
(i%3==0 || i%5==0) ? arr.push(i) : continue
因为你只是返回总数,你可以简单地做
if(i%3==0 || i%5==0) {
arr.push(i);
}
函数多重(){
var总和=0;
对于(var i=0;这不会解决问题,因为continue
是一个语句,而不是一个表达式。另一种javascript方法是(i%3 | | i%5)和&arr.push(i)
为什么“更多的javascript”,而不是javascript允许它正常工作的事实?似乎没有必要complexity@Rich我完全同意,以下几点已经足够并且众所周知:if(I%3 | | I%5)arr.push(I)
。实际上,重新阅读它,这两种方法都不起作用,因为,例如,如果数字可以被3整除,那么i%3将导致数字0,其计算结果为falsy而非truthy。因此,这将返回任何不能被3和5整除的数字。因此,返回到不必要的复杂性部分应该是“3或5”而不是“3和5”
if(i%3==0 || i%5==0) {
arr.push(i);
}
function multiple() {
var sum = 0;
for( var i=0 ; i<1000 ; ++i ) if( i%3==0 || i%5==0 ) sum += i;
return sum;
}