Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-条件抛出未捕获的语法错误_Javascript_Syntax Error_Conditional Statements - Fatal编程技术网

JavaScript-条件抛出未捕获的语法错误

JavaScript-条件抛出未捕获的语法错误,javascript,syntax-error,conditional-statements,Javascript,Syntax Error,Conditional Statements,我目前正在进行一项挑战,将输入以下函数的任意数量的数字转换为货币(用字符串表示,其中每三个字符用逗号分隔)。一切正常,直到我意识到如果输入的数字长度是4,那么逗号应该放在1234而不是123,4。 当我在for循环中包装初始if语句时,函数似乎有点失控了。(1) 我总是在控制台中被抛出一个“未捕获的SyntaxError:意外的标记else”。(2) 我想这可能是因为尝试在for/if/else周围放置if/else。如果能说明我的错误,我们将不胜感激。查理 function toCurrenc

我目前正在进行一项挑战,将输入以下函数的任意数量的数字转换为货币(用字符串表示,其中每三个字符用逗号分隔)。一切正常,直到我意识到如果输入的数字长度是4,那么逗号应该放在1234而不是123,4。 当我在for循环中包装初始if语句时,函数似乎有点失控了。(1) 我总是在控制台中被抛出一个“未捕获的SyntaxError:意外的标记else”。(2) 我想这可能是因为尝试在for/if/else周围放置if/else。如果能说明我的错误,我们将不胜感激。查理

function toCurrency(price){


      var newStrng = price.toString().split("");

      var stringCh = [];

      if(newStrng.length===4){ 

          console.log("gotcha");
          stringCh = newStrng.splice(1,0,",");
          return stringCh;

        } else {

        for(var i = 0; i < newStrng.length; i++) {
          if(i %3 === 0 && i !== 0){

              stringCh.push(",");
              stringCh.push(newStrng[i]);

          }  
              } else {

                  stringCh.push(newStrng[i]);
              } 
        }

        var finallyDone = stringCh.join("");
        return finallyDone;

    }//EO function
函数到货币(价格){
var newStrng=price.toString().split(“”);
var stringCh=[];
如果(newStrng.length==4){
console.log(“gotcha”);
stringCh=新的拼接(1,0,“,”);
返回字符串;
}否则{
对于(变量i=0;i
下一块中的
if
语句

for(var i = 0; i < newStrng.length; i++) {
      if(i %3 === 0 && i !== 0){

          stringCh.push(",");
          stringCh.push(newStrng[i]);

      }  
          } else {

              stringCh.push(newStrng[i]);
          } 
    }
for(变量i=0;i
有一个额外的
}
,就在
else
之前。取出它,您将不会再收到语法错误


通过确保代码正确缩进,以便可以看到哪些括号与哪些块相关联,将来可以更容易地发现类似的错误。虽然我知道它可以在源代码中合理缩进,并且可能没有复制到如此完美的位置。

for
循环的
中有一个
}
错误的位置,需要在
else
块之后移动。实际上,
if
语句位于
for
循环中,而
else
块位于循环之外,这是无效的语法

function toCurrency(price){
    var newStrng = price.toString().split("");
    var stringCh = [];

    if(newStrng.length===4){ 
        console.log("gotcha");
        stringCh = newStrng.splice(1,0,",");
        return stringCh;
    } else {
        for(var i = 0; i < newStrng.length; i++) {
            if(i %3 === 0 && i !== 0){
                stringCh.push(",");
                stringCh.push(newStrng[i]);
            } else {
                stringCh.push(newStrng[i]);
            }
        } 
    }

    var finallyDone = stringCh.join("");
    return finallyDone;

}//EO function
函数到货币(价格){
var newStrng=price.toString().split(“”);
var stringCh=[];
如果(newStrng.length==4){
console.log(“gotcha”);
stringCh=新的拼接(1,0,“,”);
返回字符串;
}否则{
对于(变量i=0;i
删除}之后

stringCh.push(newStrng[i]);

嗯,js:-)中没有{}的
,否则{}
语句总是正确地缩进代码。