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

React中如何在循环内动态更新对象的属性值

动态根据参数指定属性过滤数组

你遇到的问题核心是动态访问对象属性:点语法(.)只能搭配固定属性名,没法直接用变量替代,这时候必须用方括号语法([])实现动态属性访问。

另外你的代码还有个小问题:filter方法会返回过滤后的新数组,但你没有把结果赋值给变量或返回出去,导致函数没有有效输出。

修正后的代码

let mainArr = [{
    name: "ram",
    age: 30,
    nametwo: "shiva"
  },
  {
    name: "geetha",
    age: 20,
    nametwo: "anjali"
  }
];

let compareArr = ["ram"];

const test = (param) => {
  // 用方括号语法动态访问对象属性
  return mainArr.filter(obj => compareArr.includes(obj[param]));
}

// 调用示例
console.log(test("name")); // 输出: [{name: "ram", age: 30, nametwo: "shiva"}]
console.log(test("nametwo")); // 输出: [](compareArr中无shiva/anjali)

额外优化:避免属性不存在的情况

如果担心传入的param对应的属性在对象里不存在,可以加个判断,防止出现undefined导致的意外:

const test = (param) => {
  return mainArr.filter(obj => 
    obj.hasOwnProperty(param) && compareArr.includes(obj[param])
  );
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:55:27