TypeScript中如何通过循环为lstrData系列变量批量赋值?
如何通过循环为按规律命名的变量赋值?
当然可以实现!你已经摸到了正确的思路——利用对象属性的方括号访问语法,就能批量给这类有统一命名规则的变量赋值。
核心原理
在JavaScript里,如果你是在类实例方法、模块作用域或者全局作用域中,这些变量本质是挂载在某个对象上的:
- 类实例里的变量挂在
this上 - 浏览器全局变量挂在
window上 - Node.js/现代JS环境的全局变量挂在
globalThis上
所以你可以通过对象["变量名前缀" + 序号]的方式,动态拼接变量名并赋值。
适配你的需求的示例代码
你要赋值的是lstrData1到lstrData5,注意循环要从1开始到5结束,避免生成多余的lstrData0:
// 类实例场景(比如Vue组件、React类组件的方法里) for (let i = 1; i <= 5; i++) { this[`lstrData${i}`] = i; // 模板字符串拼接更简洁,也可以用 "lstrData" + i } // 全局作用域场景 for (let i = 1; i <= 5; i++) { globalThis[`lstrData${i}`] = i; // 浏览器里也可以用 window 替代 globalThis }
额外建议:更优雅的替代方案
如果这些变量是在局部作用域(比如普通函数里用let/const声明的),上面的方法就不生效了——因为局部变量不会挂载到任何对象上。这时候更推荐用对象或数组来统一管理这些值,代码更整洁也更易维护:
// 用对象统一存储 const dataStore = {}; for (let i = 1; i <= 5; i++) { dataStore[`lstrData${i}`] = i; } // 访问示例 console.log(dataStore.lstrData3); // 输出 3
内容的提问来源于stack exchange,提问作者shiji
相关产品推荐
相关产品推荐

