Javascript 我正在尝试制作一个小的标记器
我试图在js中创建一个tokenzir,但是我注意到结果中没有包含我想要的“+” 这段代码中的错误是什么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=
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',
'(', ')', ')'
]