【问题标题】:SyntaxError: Unexpected token { in javascriptSyntaxError:意外的令牌{在javascript中
【发布时间】:2013-12-27 04:57:12
【问题描述】:

我在控制台所说的问题上遇到了问题

SyntaxError: Unexpected token {

我不确定它来自哪里。我是一个JS新手,刚刚学习这些东西。请您指出我的括号哪里出了问题。

var myArray = [4, 6, 23, 10, 1, 3];

var arrayAdditon = function (arr) {
    var largestNumber = arr[0];
    var sumTotal;
    for (var i = 0; i < arr.length; i += 1) {
        if (arr[i] > largestNumber) {
            largestNumber = arr[i];
        }
    }
    for (var i = 0; i < arr.length; i += 1) {
        if (largestNumber) {
            console.log(largestNumber);
        } else (arr[i] != largestNumber) {
            sumTotal += arr[i];   
        }
    }
    if (largestNumber === sumTotal) {
        return true;
    } else {
        return false;
    }
}

【问题讨论】:

  • 在此处检查您的语法错误jshint.com
  • 谢谢。我对那个工具很熟悉,虽然我没有看到错误在哪里。
  • 嗯,报错是哪一行?
  • else 没有条件,只是else {...
  • 顺便说一句,JSHint 得到了它:"14: 期望一个赋值或函数调用,而是看到一个表达式。"

标签: javascript for-loop syntax


【解决方案1】:

我认为您的 if...else 部分有错误,请尝试更改为这个。

 if (largestNumber) {
     console.log(largestNumber);
 } else if (arr[i] != largestNumber) {
     sumTotal += arr[i];   
 }

如果这不起作用,请将您收到的完整错误评论给我。尝试在萤火虫控制台中检查它。 希望对您有所帮助。

【讨论】:

    【解决方案2】:

    您的代码已在此处更新......

    var myArray = [4, 6, 23, 10, 1, 3];
    
    var arrayAdditon = function (arr) {
    var largestNumber = arr[0];
    var sumTotal;
    for (var i = 0; i < arr.length; i += 1) {
        if (arr[i] > largestNumber) {
            largestNumber = arr[i];
        }
    }
    for (var j = 0; j < arr.length; j += 1) {
        if (largestNumber) {
            console.log(largestNumber);
        } else if (arr[i] != largestNumber) {
            sumTotal += arr[i];   
        }
    }
    if (largestNumber === sumTotal) {
        return true;
    } else {
        return false;
    }
     };
    

    【讨论】:

      【解决方案3】:

      语法错误else (arr[i] != largestNumber) 把如果放在那里

      【讨论】:

        【解决方案4】:

        我看不到缺少的{

        但是

        } else (arr[i] != largestNumber) {
                sumTotal += arr[i];   
        }
        

        应该是

        } else if (arr[i] != largestNumber) {
                sumTotal += arr[i];   
        }
        

        【讨论】:

          【解决方案5】:

          这是固定的。

          var myArray = [4, 6, 23, 10, 1, 3];
          
          var arrayAdditon = function (arr) {
              var largestNumber = arr[0],
                  sumTotal, i;
          
              for (i = 0; i < arr.length; i += 1) {
                  if (arr[i] > largestNumber) {
                      largestNumber = arr[i];
                  }
              }
              for (i = 0; i < arr.length; i += 1) {
                  if (largestNumber) {
                      console.log(largestNumber);
                  } else if(arr[i] != largestNumber) {
                      sumTotal += arr[i];   
                  }
              }
              if (largestNumber === sumTotal) {
                  return true;
              } else {
                  return false;
              }
          };
          
          arrayAdditon( myArray );
          

          感谢 JSHint。

          【讨论】:

          • 你为什么要sumTotal, i'?
          • 在开始时只声明一次循环计数器i。然后在for循环中多次使用
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-11-21
          • 2017-08-05
          • 2021-03-31
          • 2019-04-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多