有没有一种方法可以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)
答案 0 :(得分:1)
您可以为属性名称using the colon syntax加上别名。
let human = {
"first-name": "John",
"last-name": "Doe",
age: 150
};
let { age, "first-name": firstName } = human;
console.log(age, firstName);
答案 1 :(得分:1)
代码对您不起作用的原因是因为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)