Distruzione degli oggetti con nomi di proprietà che non sono nomi di variabili validi

Qualcuno sa se è ansible utilizzare la destrutturazione di oggetti con spazi nel nome della proprietà? Forse questo non può essere fatto e mi rendo conto che la notazione JavaScript è errata ma non posso modificare la risposta del server JSON.

var obj1 = {name: 'Mr Smith', age: 21}; //destructure var {name, age} = obj1; //name='Mr Smith' and age=21 

Funziona come previsto.

Ma quando ho la seguente struttura di oggetti posso usare la destrutturazione degli oggetti o no?

 var obj2 = {"my name": "Mr Jones", age: 22}; var {'my name', age} = obj2; 

Se questo non è ansible Sarebbe bello se potessi assegnare la variabile con una sorta di syntax come ‘as’ …

 var {'my name' as name, age} = obj2; //name='Mr Jones'; 

Grazie

Puoi assegnargli un nome di variabile valido usando questa syntax:

 var {"my name": myName, age} = obj2; // use myName here 

Quando ho un object con spazi nel nome della proprietà posso usare la destrutturazione degli oggetti o no?

Sì, puoi usare la destrutturazione, ma puoi sempre assegnare solo identificatori (nomi di variabili). Poiché questi non consentono spazi, non è ansible utilizzare la syntax abbreviata in cui nome e identificatore di proprietà sono gli stessi.

Sarebbe bello se potessi assegnare la variabile con una sorta di syntax come ‘as’:

 var {'my name' as name, age} = obj2; 

as è per le importazioni / esportazioni di moduli. Per gli oggetti normali, sia letterali che destrutturanti, si usano i due punti:

 var {'my name': name, age} = obj2;