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

IT技术 javascript ecmascript-6 destructuring
2021-01-16 03:20:15

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

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

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

const { key-with-dash } = object;

于是我想到了一个问题。在这种情况下,我应该如何解构对象?甚至有可能吗?

3个回答

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

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

console.log("foo", foo);

给它一个有效的名字

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

您是否还知道可以使用变量进行解构?

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

感谢您的额外提示。不知道:) 虽然我不得不接受 Hitmands 的回答,因为他的速度稍快一些 :)
2021-03-31 03:20:15
用变量解构正是我所需要的!
2021-04-06 03:20:15
这真的很酷,读起来绝对可怕,但仍然很酷。
2021-04-11 03:20:15
不需要理由^_^
2021-04-12 03:20:15

各位开发人员,您好,如果上述方法均无效,我发现可以解决此错误。

  1. 按照这个代码

    <i>const anyVar = yourData["data-example"] </i>
    
  2. 希望这对你有用,如果你有任何问题,请问我。

PS:我知道这是一个老问题,但我遇到了一个问题,所以我认为有些人可能也会遇到这个问题。所以这就是我发布这个的原因。