js 动态 批量 创建局部或全局变量 (转载)
一、借助对象(容器),批量创建:
//变量名称 var nameList=[ "BottomQuality", "HabitatComplexity", "VelocityOrDepthCombinationCharacteristics", "StabilityOfRiverOrLakeBank", "RiverHannelChange", "WaterQuantityConditions", "VegetationDiversityOrLakesideVegetation", "WaterQualityCondition", "IntensityOfHumanActivities", "LandUse"] // 动态批量创建变量 var objData={} for(let k=0;k< nameList.length;k++){ objData[nameList[k]]=[]; } //批量给变量赋值,dataTemp来自数据库。 for(let i=0;i<dataTemp.length;i++){ for(let j=0;j< nameList.length;j++){ objData[nameList[j]].push(dataTemp[i][nameList[j]]); } }
如果objData 在方法里面,那么就是批量创建局部变量(相对于该方法内的其它对象)。
如果objData 在方法外面,那么就是批量创建全局变量(相对于该方法的作用域)。
如果 删除 var objData={},直接将objData替换为全局变量window,那么就是创建全局变量(相对于window对象的作用域,一般指这个页面)。
在vue项目,删除 var objData={},直接将objData替换为全局变量this,那么就是创建全局变量(相对于该this的作用域,一般指页面或组件)。
转载来源
一、
https://blog.csdn.net/stevenzhong900610/article/details/40857087
借助全局对象window或eval方法

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>ECharts</title> <script> var obj = {} var num = 1; function na() { var names = 'name' + (num++); window[names] = '我爱你' + num; } function xxx() { alert( eval("name1")); } </script> </head> <body id="body" οnlοad="na()" > <input type="button" value="button" οnclick="xxx();" /> </body> </html>
二、
https://www.cnblogs.com/Marydon20170307/p/9253957.html
运用eval

/** * 声明一个函数 * @explain 传参个数不确定 */ function test() { for (var i = 0; i < arguments.length; i++) { //var param = arguments[i]; eval("var param" + (i + 1).toString() + "= arguments[" + i + "]"); } alert(param1); } // 调用 test('Marydon','http://www.cnblogs.com','动态创建变量演示');
和平常意义上的变量声明和赋值一样,eval()函数里面直接放字符串就行了,需要变动的是将其全部当成字符串来处理,涉及到变量的地方,需要使用拼接;上面这种情况,必须使用eval()才能实现,var param + (i + 1).toString() = arguments[i];,这种像往常一样的变量声明,会报错;字符串拼接数字时,需要将number类型转换成String类型。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2018-10-24 vsCode 列选择、列选中、选中列、选中多列(转载)