是否有方法将属性名称中带有连字符的对象destructure
。在这样做的时候,我得到了一个SyntexError
(这是合理的,因为JS不允许使用hyphen
的变量名(。
let human= {
"first-name":"John",
"last-name":"Doe",
age:150
}
let {age}= human;
// let {"first-name"}= human;//error
// let {first-name}= human;//error
console.log(age)
您可以使用冒号语法对属性名称进行别名。
let human = {
"first-name": "John",
"last-name": "Doe",
age: 150
};
let { age, "first-name": firstName } = human;
console.log(age, firstName);
代码不适用的原因是first-name
在Javascript中不是一个有效的变量名,因为它在console.log(first-name)
期间将其视为减号运算符,而不是连字符。因此,修复方法可能是将对象属性重命名为first_name
,并在其他地方使用它。
let human= {
"first-name":"John",
"last-name":"Doe",
age:150
}
let {age}= human;
let {'first-name':first_name}= human;
console.log(first_name)