JavaScript如何为对象所有键名批量添加指定前缀?
JS对象键名统一添加前缀的实现方案
你可以通过遍历原对象属性、重构键值对的方式实现需求,以下是两种最常用的写法:
- 简洁写法(ES2019+ 支持)
用Object.entries把原对象转成键值对数组,map遍历给每个键拼接前缀后,再用Object.fromEntries转回对象,不会修改原对象:const origin = { cart: 4, trolley: 10, car: 2, } const result = Object.fromEntries( Object.entries(origin).map(([key, val]) => [`shopping_${key}`, val]) ) // result 就是你需要的带前缀键名的新对象 - 兼容旧环境写法
如果需要兼容不支持Object.fromEntries的运行环境,可以用reduce方法聚合生成新对象:const origin = { cart: 4, trolley: 10, car: 2, } const result = Object.keys(origin).reduce((target, key) => { target[`shopping_${key}`] = origin[key] return target }, {})
注意:以上两种写法都会生成全新的对象,不会改动原始输入的对象。如果直接修改原对象,可能会影响其他引用该对象的逻辑,非特殊场景不推荐。
内容的提问来源于stack exchange,提问作者Alyona
相关产品推荐
相关产品推荐

