如何使用无效变量名称的键名来构造对象属性?

lar*_*ter 50 javascript destructuring ecmascript-6

由于对象键是字符串,因此它们可以包含任何类型的字符和特殊字符.我最近偶然发现了一个从API调用中收到的对象.该对象的键名称中包含" - ".

const object = {
   "key-with-dash": []
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,解构不起作用,因为key-with-dash它不是有效的变量名.

const { key-with-dash } = object;
Run Code Online (Sandbox Code Playgroud)

所以我想到了一个问题.在这种情况下,我该如何解构物体呢?它甚至可能吗?

Hit*_*nds 73

const data = {
   "key-with-dash": ["BAZ"]
}

const {"key-with-dash": foo} = data;

console.log("foo", foo);
Run Code Online (Sandbox Code Playgroud)


Tha*_*you 33

只要给它一个有效的名字

let object = { 'key-with-dash': [] }
let {'key-with-dash':y} = object
console.log(y)
// => []
Run Code Online (Sandbox Code Playgroud)

您是否也知道可以使用变量进行结构化?

let object = { 'key-with-dash': [] }
let key = 'key-with-dash'
let {[key]:y} = object
console.log(y)
// => []
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的额外提示.不知道那个:)虽然我不得不接受命令回答,因为他稍快一点:) (2认同)
  • 没有必要的理由^ _ ^ (2认同)
  • 这真的很酷,读起来绝对可怕,但仍然很酷。 (2认同)