Javascript 我正在尝试制作一个小的标记器

Javascript 我正在尝试制作一个小的标记器,javascript,jquery,Javascript,Jquery,我试图在js中创建一个tokenzir,但是我注意到结果中没有包含我想要的“+” 这段代码中的错误是什么 var a=String.raw`(0.34+4+5.5++4() )` function tokenizer(a){var b=0;d=[];e=""; while(b<a.length){var c=a[b]; if(c=="+"){d.push("+");c=a[++b];continue;} if(c=

我试图在js中创建一个tokenzir,但是我注意到结果中没有包含我想要的“+” 这段代码中的错误是什么

var a=String.raw`(0.34+4+5.5++4() )`
function tokenizer(a){var b=0;d=[];e="";
while(b<a.length){var c=a[b];
    if(c=="+"){d.push("+");c=a[++b];continue;}
    if(c=="("){d.push(c);b++;continue;}
    if(c==")"){d.push(c);b++;continue;}
    if(c==" "||c=="\n"||c=="\t"){b++;continue;}
    if(/[0-9.]/.test(c)==true){while(/[0-9.]/.test(c)==true){e+=c;c=a[++b]};d.push(e);e="";b++;continue}
}
return d;
}
console.log(tokenizer(a))//result =["(", "0.34", "4", "5.5", "+", "4", ")", ")"]
var a=String.raw`(0.34+4+5.5++4())`
函数标记器(a){var b=0;d=[];e=”“;

(b回答我的评论时:


不要同时使用所有的
[++b]
[b++]
索引和递增。这会使代码更难阅读,也容易出错,就像您的情况一样-删除最后一个
b++
(继续之前的一个)可以修复问题(请参见下文).我更喜欢在命令之后使用索引和增量(对于
++b
的情况,在命令之前)

工作代码:

var a=String.raw`(0.34+4+5.5++4())`
函数标记器(a){var b=0;d=[];e=”“;

虽然(b不要同时使用所有的
[++b]
[b++]
索引和递增。这会使代码更难阅读,也容易出错,就像您的情况一样-删除最后一个
b++
(在
继续之前的那一个)解决了这个问题只是一个提示,你应该试着在标题中提出一个问题。
[
  '(', '0.34', '+',
  '4', '+',    '5.5',
  '+', '+',    '4',
  '(', ')',    ')'
]