使用 属性 名称的对象解构不是有效的变量名称
Object destructuring with property names that are not valid variable names
有谁知道您是否可以在 属性 名称中使用带空格的对象解构?也许这无法完成,我意识到 JavaScript 符号不正确,但我无法更改服务器 json 响应。
var obj1 = {name: 'Mr Smith', age: 21};
//destructure
var {name, age} = obj1;
//name='Mr Smith' and age=21
这按预期工作。
但是当我有以下对象结构时,我是否可以使用对象解构?
var obj2 = {"my name": "Mr Jones", age: 22};
var {'my name', age} = obj2;
如果这是不可能的如果我能用某种语法给变量赋值就好了,比如'as'...
var {'my name' as name, age} = obj2; //name='Mr Jones';
谢谢
您可以使用以下语法为其分配一个有效的变量名:
var {"my name": myName, age} = obj2;
// use myName here
When I have an object with spaces in the property name can I use object destructuring or not?
是的,你可以使用解构,但你总是只能分配给标识符(变量名)。由于那些不允许空格,您不能使用 shorthand 语法,其中 属性 名称和标识符相同。
It would be nice if I could assign the variable with some sort of syntax like 'as':
var {'my name' as name, age} = obj2;
as
用于模块 imports/exports。对于普通对象——文字和解构——你使用冒号 :
:
var {'my name': name, age} = obj2;
有谁知道您是否可以在 属性 名称中使用带空格的对象解构?也许这无法完成,我意识到 JavaScript 符号不正确,但我无法更改服务器 json 响应。
var obj1 = {name: 'Mr Smith', age: 21};
//destructure
var {name, age} = obj1;
//name='Mr Smith' and age=21
这按预期工作。
但是当我有以下对象结构时,我是否可以使用对象解构?
var obj2 = {"my name": "Mr Jones", age: 22};
var {'my name', age} = obj2;
如果这是不可能的如果我能用某种语法给变量赋值就好了,比如'as'...
var {'my name' as name, age} = obj2; //name='Mr Jones';
谢谢
您可以使用以下语法为其分配一个有效的变量名:
var {"my name": myName, age} = obj2;
// use myName here
When I have an object with spaces in the property name can I use object destructuring or not?
是的,你可以使用解构,但你总是只能分配给标识符(变量名)。由于那些不允许空格,您不能使用 shorthand 语法,其中 属性 名称和标识符相同。
It would be nice if I could assign the variable with some sort of syntax like 'as':
var {'my name' as name, age} = obj2;
as
用于模块 imports/exports。对于普通对象——文字和解构——你使用冒号 :
:
var {'my name': name, age} = obj2;