失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > js字符串定义为变量名 通过字符串查找变量

js字符串定义为变量名 通过字符串查找变量

时间:2022-04-08 10:52:04

相关推荐

js字符串定义为变量名 通过字符串查找变量

最近在写js的时候碰到了难题,我又一个页面需要生成很多的变量。但是变量的名称是根据参数的不同而区分的。

1、字符串定义为变量名

例如可能需要生成的变量名字 url_1,url_2,url_3… (后面的数字是根据参数来的)。 所以我的函数名 应该由 var ‘变量名’ = “url_”+num; 生成函数名 但这问题就来了。

初始化变量时等号左边是不允许是表达式的。

所以var "url_"+num = " ";这肯定是错误的。后来问了度娘后才知道。可以使用 window[字符串变量名] = 100 这种方式来定义变量。看代码

function createVariable(num){var name = "url_"+num; //生成函数名window[name] = 100;//注意看中括号里的内容加引号和不加引号的区别//加引号代表name为字符串,而不是上面的name变量'url_*'window['name'] = 200; }create_variable(2);alert(url_2); // 100;alert(name); //200;

window用中括号的方式定义 变量时,中括号里的内容应该是字符串。如果是一个变量的话,他就会解析这个变量找到具体的值。

2、通过字符串查找变量

这种情况是我已经定义好了多个类似“url_1,url_2,url_3……”的有规律变量,但是当动态引用变量的时候获取变量的值是个问题

//使用freemarker遍历集合批量生成变量 <#list audioUrlList?if_exists as item>var audioUrl_${item_index}="${item}";</#list>

根据指定的角标调用时可以用

function getUrl(index){var variableName = "audioUrl_"+index;return eval(variableName);}

eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码

附:其他方式解决 字符串定义为变量名

1、用对象的形式

var object = {};for(var i=0;i<10;i++){object['var_'+i]='';}

2、用数组的形式

var arr=[];for(var i=0;i<xxx.length;i++ ){arr[i]=}

如果觉得《js字符串定义为变量名 通过字符串查找变量》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。