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

如何通过函数参数指定对象属性,向对应数组执行push操作?

解决方法

你遇到的问题是因为JavaScript的点语法只能访问字面量命名的属性,而你想用变量propX指定属性名时,必须改用方括号语法。

修改后的代码

var aObj = {
 prop5: ["nameA5.1", "nameA5.2"],
 prop6: ["nameA6.1", "nameA6.2"]
};

function func (propX, namn) {
  // 用方括号访问动态指定的属性
  aObj[propX].push(namn);
  return aObj;
};

// 调用时传入目标属性名和要添加的字符串
console.log(func("prop5", "test text"));
console.log(func("prop6", "new item for prop6"));

额外的防错处理

如果担心传入的属性名不存在,或者对应的属性不是数组,可以加个简单的判断避免报错:

function func (propX, namn) {
  // 检查属性是否存在且为数组,不存在则初始化空数组
  if (!Array.isArray(aObj[propX])) {
    aObj[propX] = [];
  }
  aObj[propX].push(namn);
  return aObj;
};

这样不管传入的属性是否存在,都能安全地添加元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 11:55:36