You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自动提取数据库对应值作为动态生成JS函数的入参使用

实现方案

可以通过参数映射+展开传参的方式实现自动传参,无需手动逐个定义变量,也不需要修改原函数的多参数定义:

  1. 先用Array.prototype.map遍历externalValues.params,按顺序取出InternalValues中对应键的取值,生成参数值数组
  2. 用ES6扩展运算符...或者函数apply方法把数组拆分为独立参数传入函数

修改后完整代码

// Values in DB
const InternalValues = {
  phone: '123456789',
  old: '25'
}

//Values from external inputs, when params old=param1 and phone=param2
const externalValues = {
  data: `return function exec(param1,param2){
            console.log("values",param1,param2)
            return [param1, param2]
        };`,
  params: ['old', 'phone'],
}

// Create a function
const Func = new Function(externalValues.data)();

// 自动生成参数数组,参数新增时不需要修改此处逻辑
const execParams = externalValues.params.map(paramKey => InternalValues[paramKey])

// 执行函数:扩展运算符自动把数组拆为独立参数,和手动传参效果完全一致
const ii = Func(...execParams)
// 旧环境兼容写法:const ii = Func.apply(null, execParams)

console.log(ii);

说明

  • 后续新增参数时,只需要同步修改externalValues的params数组和函数形参定义即可,传参逻辑不需要做任何调整
  • 该方案不需要把所有参数封装为单个数组作为唯一参数传入,原函数的多参数定义可以完全保留

内容的提问来源于stack exchange,提问作者renatosantos0611

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:57:04