首页 > 其他分享 >js中eval执行的脚本参数不固定,并且脚本中有return时,如何处理

js中eval执行的脚本参数不固定,并且脚本中有return时,如何处理

时间:2024-09-10 11:06:21浏览次数:9  
标签:脚本 return key let eval obj

最近就遇到了用eval执行动态脚本时,拿不到return中的值的问题,

如下界面:

点击测试函数,进行计算,计算时遇到两点问题:

1.传入的参数是动态的,如何解决变量声明问题?

2.eval进行执行脚本时,拿不到return的值?

现在将代码贴下,查看解决方案:

function emrscript(): any {
  let obj = {}
  form.parameterList.forEach((p, ind) => {
    obj[p.parameterName] = Number(p.testValue)
  })
  let formatMethodBody = form.methodBody
  for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
      formatMethodBody = formatMethodBody.replaceAll(key, `obj.${key}`) //处理动态参数问题
    }
  }
  let script = `(function() { ${formatMethodBody} })();`//处理拿不到return的值,return需在一个函数体中
  let result = eval(script)
  return result
}

function calculate() {
  //执行脚本内容。
  try {
    testResult.value = emrscript()
  } catch (error: any) {
    testResult.value = error.message
  }
}

标签:脚本,return,key,let,eval,obj
From: https://www.cnblogs.com/yuwenjing0727/p/18406009

相关文章

  • 安装mayavi命令,使用cxfreeze打包python脚本
    pipinstallnumpy出现Anewreleaseofpipisavailable:23.2.1->24.2输入:python-mpipinstall--upgradepipsetuptoolswheelpipinstallPyQt5pipinstallvtkpipinstallmayavipipinstallscipypipinstallconfigobj 查看当前项目的依赖包:pipfr......
  • eval
    MemTotal=$(awk'/MemTotal/{print$2}'/proc/meminfo)#MemTotal=$(echo"scale=2;$MemTotal/1000/1000"|bc)CpuTotal=$(awk'/processor/{core++}END{printcore}'/proc/cpuinfo)exportmongodb_cpu=$(($CpuTotal/5))exportcore_c......
  • 『功能项目』C#拓展 - 优化冗余脚本【36】
    我们打开上一篇35战士的平A特效的项目,本章要做的事情是代码优化,通常为了少写一些重复的脚本,会将常用到的一段代码封装在一个自定义的静态拓展方法里,在外部类中调用即可。新建一个脚本文件夹创建脚本:WExtension.csusingUnityEngine;publicstaticclassWExtension{......
  • 就这么学Linux 编写Shell脚本
    编写Shell脚本Shell脚本命令的工作方式有下面两种➢交互式:用户每输入一条命令就立即执行➢批处理:由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令.编写简单脚本当前系统已经默认使用Bash作为命令行终端解释器了echo$SHELL如果想查看当前所在工作......
  • Linux脚本中 指令返回值得获取,已经参数等获取
    在写脚本时,经常遇到这样的问题:如何获取当前进程号,脚本执行过的命令的进程号?如何获取当前时间?如何得到参数个数?如何得到脚本中各命令的返回信息?。。。。其实这些信息都能轻松从shell预定义的一些特殊变量获得,下面总结了一些常用的。 特殊的shell变量:#获取当前执行的sh......
  • 【待做】【python脚本】使用python脚本解析netflow抓包数据到csv
    一、使用linux自带的tcpdump抓包二、将抓好的包导入wireshark三、将数据导出为json文件四、解析数据到csv五、运行解析脚本原创圈圈网络技术干货圈本文主要讲解了linux下通过tcpdump抓取netflow数据包,并将其导入到wireshark进行解析,然后通过wireshark导出数据为jso......
  • 在本地服务器上使用Python脚本处理HTML表单
    要在本地服务器上使用Python处理HTML表单,可以使用 Flask 框架,这是一个轻量级的web框架,特别适合快速构建和处理HTTP请求。以下是如何使用 Flask 创建一个本地服务器,展示HTML表单并处理提交的数据。1、问题背景有一个托管在本地服务器(apache2)上的HTML页面,想要将一些......
  • shell脚本
    shebang以#!开头的文件,程序会在执行时会调用/bin/sh,bash的解释器。默认使用/bin/sh执行。也可指定使用解释器,如:/bin/bash/pythonhello.py执行脚本的方式bashscript.sh或者shscript.sh,文件本身没有执行权限的方法。使用绝对路径或相对路径,需要文件有执行权限。shel......
  • Shell脚本 随笔1
    Shell是一个程序,采用c语言编写。是用户与Linux内核交互沟通的桥梁。它既是一种命令语言,也是一种解释性编程语言。Shell就是将完成一个任务的所有命令按照执行的先后顺序,自上而下的写入到一个文本文件中,然后给予执行权限。编写的几种规范:1.脚本命名要有意义2.必须要指定脚本运......
  • 网络属性及相关配置工具\shel脚本编程-进阶 \进程-系统性能和计划任务
    一、通过网络配置命令让主机上网1.查看网络接口信息:  -`ipa`或者`ifconfig`显示系统中所有网络接口的详细信息,包括IP地址、子网掩码、MAC地址等。2.配置IP地址、子网掩码、网关和DNS:  -IP地址:使用`ifconfig`或`ipaa`命令来设置IP地址。例如,`ifconfig......