更改属性名称

时间:2011-12-13 01:50:36

标签: javascript

我有一个JavaScript对象如下:

var a = { Prop1: 'test', Prop2: 'test2' }

如何将Prop1的“属性名称”更改为Prop3?

我试过

for (var p in r) p.propertyName = 'Prop3';

但这没效果。

4 个答案:

答案 0 :(得分:76)

这不是直接可能的。

你可以写

a.Prop3 = a.Prop1;
delete a.Prop1;

答案 1 :(得分:12)

使用建议的property rest notation,写

X2

这是由Babel的object rest spread transform支持的。

答案 2 :(得分:6)

添加对象休息传播解决方案

const { Prop1: Prop3, ...otherProps } = a;
const newObj = { Prop3, ...otherProps };

答案 3 :(得分:-14)

解决方法

使用ObjectString转换为JSON.stringify,然后使用Prop1将所有Prop3替换为str.replace("Prop1", "Prop3")。 最后,使用Object将您的字符串转换回JSON.parse(str)

注意: str.replace("Prop1", "Prop3")只会替换第一次出现的" Prop1"在JSON字符串中。要替换多个,请使用此正则表达式语法: str.replace(/Prop1/g, "Prop3") Refrence Here

演示

http://jsfiddle.net/9hj8k0ju/

实施例

var a  = { Prop1: 'test', Prop2: 'test2' }
str = JSON.stringify(a);
str = str.replace("Prop1","Prop3");
var converted  = JSON.parse(str);