如何在循环中将计数器变量i嵌入对象属性名(如testData_i_name)
解决方案:用方括号表示法动态访问对象属性
当然可以实现!在JavaScript里,访问对象属性有两种方式:点表示法(比如obj.prop)和方括号表示法(比如obj['prop'])。后者刚好支持动态拼接属性名,完全符合你的需求,而且不需要用到全局作用域或者window对象。
修改后的代码应该是这样的:
for(var i = 0; i < record.length; i++) { // 动态拼接属性名,用方括号访问 var targetData = record[i][`testData_${i}_name`]; // 这里可以继续处理获取到的 targetData console.log(targetData); }
关键说明:
- 我们用模板字符串(反引号包裹,
${i}插入变量)来动态生成属性名字符串,比如当i=0时,生成的就是"testData_0_name",i=1时就是"testData_1_name"。 - 然后通过
record[i][属性名字符串]的方式,就可以精准访问到对应的属性了,和点表示法的效果完全一致,但灵活性更高。
如果你的运行环境不支持ES6模板字符串(比如一些老旧浏览器),也可以用传统的字符串拼接方式替代:
for(var i = 0; i < record.length; i++) { var propName = "testData_" + i + "_name"; var targetData = record[i][propName]; // 后续处理逻辑 }
这样就完美解决了你的需求,既不需要依赖全局变量,也完全满足循环中动态切换属性的要求。
内容的提问来源于stack exchange,提问作者randomcat
相关产品推荐
相关产品推荐

