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

JavaScript中如何动态拼接变量名获取对应属性值?

动态获取对象的带编号属性值

你写的props.attributes.title+i是错误的,这会把props.attributes.title(如果不存在这个属性就是undefined)和变量i直接拼接成字符串,根本不是访问title1/title2这类目标属性。

正确的做法是用对象的方括号访问语法,因为方括号里可以放动态拼接的字符串作为属性名,直接修改你的函数就能实现需求:

function getTitle(i){
    // 用方括号拼接出动态属性名
    var output = props.attributes["title" + i];
    return output;
}

比如当i=1时,"title"+i会生成字符串"title1",这就等价于你静态写的props.attributes.title1,能根据i的值自动匹配对应的属性。

你之前写的myScope["title"+i]其实已经用到了方括号语法,但这里不需要额外创建myScope对象,直接操作props.attributes更直接。如果后续需要把这些动态属性存到自定义对象里,可以这么用:

function getTitle(i){
    var myScope = {};
    // 将props中的动态属性存入自定义对象
    myScope["title" + i] = props.attributes["title" + i];
    // 从自定义对象中取值返回
    return myScope["title" + i];
}

简单总结:JavaScript访问对象属性有两种方式:

  • 点语法:obj.property,适合属性名是固定字符串的场景
  • 方括号语法:obj["property"],支持动态生成的属性名字符串,完美适配你这种带编号的动态属性需求

内容的提问来源于stack exchange,提问作者Boberwt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 08:24:18