【问题标题】:How to destructure object properties with key names that are invalid variable names?如何使用无效变量名的键名解构对象属性?
【发布时间】:2016-12-10 07:17:34
【问题描述】:

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

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

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

const { key-with-dash } = object;

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

【问题讨论】:

    标签: javascript ecmascript-6 destructuring


    【解决方案1】:

    const data = {
       "key-with-dash": ["BAZ"]
    }
    
    const {"key-with-dash": foo} = data;
    
    console.log("foo", foo);

    【讨论】:

      【解决方案2】:

      给它一个有效的名字

      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 的回答,因为他的速度稍快 :)
      • 无需证明 ^_^
      • 用变量解构正是我所需要的!
      • 这真的很酷,读起来绝对可怕,但真的很酷。
      【解决方案3】:

      各位开发者,您好, 如果上述方法都不起作用,我已经找到了突破这个错误的方法。

      1. 关注此代码

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

      P.S:我知道这是一个老问题,但我遇到了一个问题,所以我认为有些人也可能面临这个问题。这就是我发布此内容的原因。

      【讨论】:

        猜你喜欢
        • 2016-08-03
        • 2018-11-20
        • 2018-07-24
        • 2011-11-29
        • 2019-10-02
        • 1970-01-01
        相关资源
        最近更新 更多