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

标签 javascript syntax-error conditional-statements

我目前正在努力将输入到下面函数中的任意数量的任意数字转换为货币(用每三个字符用逗号分隔的字符串表示)。一切都很好,直到我意识到如果输入的数字的长度是 4,那么逗号需要放置为 1,234 而不是 123,4。 当我将初始 if 语句包裹在我的 for 循环中时,函数似乎有点失控了。 (1) 我一直在控制台中抛出“未捕获的语法错误:其他意外标记”。 (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

最佳答案

下面 block 中的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]);
          } 
    }

有一个额外的,就在else 之前。将其取出,您应该不会再收到语法错误。

通过确保代码正确缩进,您可以更轻松地在将来发现此类错误,这样您就可以看到哪些括号与哪些 block 相关联。虽然我很欣赏它可以在源代码中合理地缩进,并且可能没有完美地复制到这里。

关于JavaScript - 有条件地抛出未捕获的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32129108/

相关文章:

couchdb - CouchDB 是否支持多范围查询?

r - 有条件地将 mutate_at 应用于 R 中数据帧中的特定行

javascript - 在 JavaScript 中编写这些语句的简洁而健壮的方法是什么?

javascript - 如何将字符串绑定(bind)到 View 中的范围 var?

javascript - 如何在上传多个选定视频之前进行多个视频预览

sql-server-2008 - charindex时的SQL Server案例

python - (Python 3.x)语法从文件中读取一行时解析时出现EOF错误。

Javascript ES6 绑定(bind)错误 react

javascript - 在 DOM 中找不到 nextElement/nextElementSibling。是因为它是 img 吗?

syntax-error - 嵌套函数和变量的 ocaml 问题