TypeScript Layabox
/**字符串公式计算 试用运算符 "^","*","/","+","-"
* @param _strs 字符串公式 比如20+50-5*2^$Battle
* @param _level 代表字符串中$Battle
*/
public static StringFormulaCalculation(_strs:string,_level:number)
{
var _yunSList:string[]=["^","*","/","+","-"];
var _list:string[]=[];
var _lastIndex=0;
for (let i = 0; i < _strs.length; i++)
{
var _str=_strs[i];
var _index=_yunSList.indexOf(_str);
if(_index!=-1)
{
var _num=_strs.substr(_lastIndex,i-_lastIndex)
_list.push(_num);
_list.push(_str);
_lastIndex=i+1;
}else if(_str=="$")
{
_list.push(_level+"");
break;
}
}
for (let i = 0; i < _yunSList.length; i++)
{
var _fuhao=_yunSList[i];
var _index=_list.indexOf(_fuhao);
if(_index==-1)
{
continue;
}
var _num1=Number(_list[_index-1])
var _num2=Number(_list[_index+1])
var _num3=0;
if(_fuhao=="^")
{
_num3=Math.pow(_num1,_num2);
}else if(_fuhao=="*")
{
_num3=_num1*_num2;
}else if(_fuhao=="/")
{
_num3=_num1/_num2;
}else if(_fuhao=="+")
{
_num3=_num1+_num2;
}else if(_fuhao=="-")
{
_num3=_num1-_num2;
}
_list[_index-1]=_num3+"";
_list.splice(_index,2);
i--;
}
console.log("JiSuanFun-->>>",Number(_list[0]));
}