在1000以下找到3和5的倍数时出现Javascript语法错误

时间:2014-02-28 19:20:13

标签: javascript

function multiple(){
  var arr=[]
  for (var i =0; i<1000;i++){
    (i%3==0 || i%5==0) : arr.push(i) ? continue
  }
  return arr.reduce(function(sum,i){sum+=i;return sum})
}
console.log(multiple())

错误:

(i%3==0 || i%5==0) : arr.push(i) ? continue
                     ^
SyntaxError: Unexpected token :

2 个答案:

答案 0 :(得分:1)

语法错误是因为你需要反转:和?写一个合适的三元运算符

(i%3==0 || i%5==0) ? arr.push(i) : continue

虽然说实话,你真的不需要三元运算符,因为那将是你循环的唯一一行。继续实际上不会跳过任何内容,实际上如指出的那样不能用作表达式。

只需使用基本条件

if(i%3==0 || i%5==0) {
  arr.push(i);
}

答案 1 :(得分:0)

由于你只是返回金额,你可以简单地做

function multiple() {
    var sum = 0;
    for( var i=0 ; i<1000 ; ++i ) if( i%3==0 || i%5==0 ) sum += i;
    return sum;
}