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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:10:55