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

NodeJS中如何更新对象数组内指定key对应的value值

实现方法

你现有的代码已经完成了修改指定name字段值的逻辑,只需要补充修改value的逻辑即可,有两种常用实现方式:


方式1:统一配置规则(扩展性强,和原有逻辑风格一致)

新增专门的value修改配置对象,后续要修改其他key的value只要在配置里加规则就行,完整代码如下:

const obj = {
    users: [{
        name: "USER_ID",
        value: "ASD32343D",
      },
      {
        name: "USER_NAME",
        value: "mark",
      },
      {
        name: "USER_ALT_ID",
        value: "DSDF3234",
      },
      {
        name: "USER_LOC",
        value: "NY",
      },
      {
        name: "USER_SAL",
        value: "0",
      },
    ],
  };
  // 原有name修改规则
  const nameChanges = {
    USER_ALT_ID: "myuser.altID",
    USER_LOC: "myuser.loc",
  };
  // 新增value修改规则,后续要改其他key的value直接在这里加配置即可
  const valueChanges = {
    USER_SAL: "50000"
  }
  
  obj.users.forEach((o) => {
    // 原有修改name的逻辑
    if (nameChanges[o.name]) o.name = nameChanges[o.name];
    // 新增修改value的逻辑
    if (valueChanges[o.name]) o.value = valueChanges[o.name];
  });
  
  console.log(obj.users);

方式2:临时单次修改(无需额外配置,适合只改单个值的场景)

如果只是临时要改USER_SAL这一个值,不需要后续扩展,直接在循环里加判断即可:

// 其他原有代码不变
obj.users.forEach((o) => {
    if (changes[o.name]) o.name = changes[o.name];
    // 匹配到USER_SAL直接修改value
    if (o.name === 'USER_SAL') o.value = '50000';
});

两种方式运行后输出的结果都和你给出的预期输出完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:15:04