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

时间:2016-08-04 08:51:28

标签: javascript ecmascript-6 destructuring

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

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

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

const { key-with-dash } = object;

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

3 个答案:

答案 0 :(得分:64)

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

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

console.log("foo", foo);

答案 1 :(得分:30)

只需给它一个有效的名字

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)
// => []

答案 2 :(得分:0)

各位开发者,大家好, 如果上述方法均无效,我发现可以突破此错误。

  1. 遵循此代码

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

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