销毁属性名称中带有连字符的对象

时间:2018-07-16 08:06:21

标签: javascript

有没有一种方法可以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)

2 个答案:

答案 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)