cambia il nome della proprietà

Ho un object JavaScript come segue:

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

Come cambierei il “nome della proprietà” di Prop1 in Prop3?

Provai

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

ma quello non ha funzionato.

Questo non è direttamente ansible.

Puoi solo scrivere

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

Utilizzando la notazione della proprietà proposta, scrivi

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

Questo è supportato dalla trasformazione di diffusione del resto dell’object di Babel.

Aggiunta alla soluzione di diffusione del resto dell’object

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

Soluzione

Converti il ​​tuo Object in una String usando JSON.stringify , quindi sostituisci eventuali occorrenze di Prop1 con Prop3 usando str.replace("Prop1", "Prop3") . Infine, converti la stringa in un Object usando JSON.parse(str) .

Nota: str.replace("Prop1", "Prop3") sostituirà solo la prima occorrenza di “Prop1” nella stringa JSON. Per sostituire più, usa invece questa syntax regex: str.replace(/Prop1/g, "Prop3") Refrence Here

dimostrazione

http://jsfiddle.net/9hj8k0ju/

Esempio

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