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
相关产品推荐
相关产品推荐

