JavaScript如何修改JSON数据属性名 将ABC字段重命名为CCC
JavaScript对象属性重命名实现方案
你需要将对象data的属性名从ABC修改为CCC,核心逻辑是为对象添加新名称的属性、挂载原有属性的值,再删除旧属性即可。
原始代码如下:
var data = {ABC:{key:'dynamic_key',value:'dynamic_value'}}
具体实现方式
通用基础写法
全环境兼容,直接操作原对象:// 将原ABC属性的值挂载到新的CCC属性上 data.CCC = data.ABC; // 删除旧的ABC属性 delete data.ABC;执行完成后即可通过
data.CCC.key、data.CCC.value访问目标内容,此时访问data.ABC会返回undefined。动态属性名写法
如果新旧属性名是动态生成的变量,可以用方括号语法操作:const oldPropName = 'ABC'; const newPropName = 'CCC'; data[newPropName] = data[oldPropName]; delete data[oldPropName];注意:以上两种直接赋值的方式属于浅拷贝,由于示例中
ABC对应的值是对象(引用类型),赋值后data.CCC和原data.ABC指向同一块内存地址,修改其中任意一个的内部属性,另一个也会同步变化。如果需要二者完全独立,可根据业务场景额外做深拷贝处理。不修改原对象的写法
如果你不想改动原始data对象,要生成属性重命名后的新对象,可以用解构赋值实现:// 把ABC属性的值提取出来重命名为CCC,剩余属性放到rest对象里 const {ABC: CCC, ...rest} = data; // 组装成新对象 const newData = {CCC, ...rest};这种写法不会对原始
data造成任何修改,新对象newData上保留原对象所有属性,仅把原ABC属性替换为CCC。
内容的提问来源于stack exchange,提问作者Mark Abde
相关产品推荐
相关产品推荐

