麻烦大神帮忙改下代码,找不出是哪的问题
我的代码
const Interpreter = function() {
return {
read:function(input){
let stack=[0,0,0],i=0,opt=[],loop=0;
for(var j=0;j<input.length;j++){
switch (input.charAt(j)) {
case '*':
stack[i]=0;
break;
case '+':
stack[i]+=1;
break;
case '-':
stack[i]-=1;
break;
case '<':
i<1?(stack[2]=stack[0],stack[0]=0):(stack[i-1]=stack[i],stack[i]=0);
break;
case '>':
i>1?(stack[0]=stack[2],stack[2]=0):(stack[i+1]=stack[i],stack[i]=0);
break;
case '^':
stack[i]=0;
break;
case '.':
opt.push(stack[i]);
break;
case '#':
i<2?i++:i=0;
break;
case ',':
var reg = /,\d+/;
reg.lastIndex=j;
var result = reg.exec(input);
if (result){
var lth = result[0].length-1;
j+=lth;
stack[i] = Number(result[0].slice(1));
}
break;
case '[':
var reg = /\[.+\]/;
reg.lastIndex=j;
var result = reg.exec(input);
loop = result[0].length;
if (stack[i]<0){
j+=loop;
}
break;
case ']':
if (stack[i]>0){
j=j-loop+1;
}
break;
default:
return false;
}
}
return opt.join("");
}
};
}
提交结果

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
光阴似箭催人老,日月如移越少年。