如何通过循环批量为名称相似的系列变量赋值?
批量为多个变量赋值的简便方案
嘿,这个需求太常见了!当变量数量多的时候,一个个手动赋值确实低效又麻烦,下面给你两种实用的实现思路:
方案1:通过变量名字符串数组循环(适合全局变量场景)
如果你的这些变量是全局声明的(挂载在window对象上),可以把变量名存在数组里,然后遍历数组批量赋值:
// 先完成变量声明 let L1, L2, L3, R1, R2, R3; const targetValue = "something"; // 把需要赋值的变量名存入数组 const varNames = ['L1', 'L2', 'L3', 'R1', 'R2', 'R3']; // 循环遍历赋值 varNames.forEach(name => { window[name] = targetValue; });
不过要注意:如果这些变量是在局部作用域(比如函数内部)里声明的,window对象无法访问到它们,这种情况更推荐用下面的对象管理方案。
方案2:用对象统一管理变量(推荐,更规范易维护)
把所有需要赋值的变量封装成一个对象的属性,这样不仅能轻松批量赋值,还能避免全局作用域污染,后续变量增减也更方便:
// 用对象统一管理所有目标变量 const myVars = { L1: '', L2: '', L3: '', R1: '', R2: '', R3: '' }; const targetValue = "something"; // 遍历对象的所有键来批量赋值 Object.keys(myVars).forEach(key => { myVars[key] = targetValue; }); // 后续访问变量时,直接通过对象属性调用:myVars.L1、myVars.R3 等
这个方案的优势很明显:不管是局部还是全局作用域都适用,变量结构清晰,后续要新增或删除变量,只需要修改myVars对象的属性即可,不用改动大量代码。
内容的提问来源于stack exchange,提问作者Xin Chen
相关产品推荐
相关产品推荐

