新手求助:请问这个代码如何优化

喜洋洋和灰太狼 2018-06-05 02:08:20
//如何精简,谢谢。 不知道 运算符,应该如何用,新手。

 function test() {

x = "3+2";

if (x.indexOf("+") > 0) {
left = parseInt(x.match(/^(.*)\+/)[1]);
right = parseInt(x.match(/\+(.*)$/)[1]);
x = left + right;
} else if (x.indexOf("-") > 0) {
left = parseInt(x.match(/^(.*)\-/)[1]);
right = parseInt(x.match(/\-(.*)$/)[1]);
x = left - right;
} else if (x.indexOf("*") > 0) {
left = parseInt(x.match(/^(.*)\*/)[1]);
right = parseInt(x.match(/\*(.*)$/)[1]);
x = left * right;
} else if (x.indexOf("/") > 0) {
left = parseInt(x.match(/^(.*)\//)[1]);
right = parseInt(x.match(/\/(.*)$/)[1]);
x = left / right;
}


return x;
}
...全文
190 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ambit_tsai-微信 2018-06-05
  • 打赏
  • 举报
回复
如果不想用eval,也可以这么精简。

function test() {
  var x = "3+2";
  var left = parseInt( x.match(/^\d+/)[0] );
  var right = parseInt( x.match(/\d+$/)[0] );
  var op = x.match(/[^\d](?=\d+$)/)[0];
  switch(op){
  	case '+':
  	  return left + right;
  	case '-':
  	  return left + right;
  	...
  }
}
ambit_tsai-微信 2018-06-05
  • 打赏
  • 举报
回复
eval函数可以将传入的字符串,作为脚本代码来执行。

function test() {
  var x = "3+2";
  return eval(x);
}
world_broken 2018-06-05
  • 打赏
  • 举报
回复
eval一下不就OK了

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧