有人知道你是否可以在属性名称中使用带空格的对象解构?也许这不可能完成,我意识到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;
如果这是不可能的话,如果我可以使用某种语法来分配变量,那将是很好的,例如' ...' ...
var {'my name' as name, age} = obj2; //name='Mr Jones';
由于
答案 0 :(得分:18)
您可以使用以下语法为其指定有效的变量名称:
var {"my name": myName, age} = obj2;
// use myName here
答案 1 :(得分:6)
当我在属性名称中有一个带空格的对象时,我可以使用对象解构吗?
是的,您可以使用解构,但您始终只能分配标识符(变量名称)。由于那些不允许使用空格,因此您无法使用属性名称和标识符相同的简写语法。
如果我可以使用某种类型的语法分配变量,那将会很好,因为':
var {'my name' as name, age} = obj2;
as
用于模块导入/导出。对于普通对象 - 文字和解构 - 您使用冒号:
:
var {'my name': name, age} = obj2;