如何使用包含连字符的键将对象解构为变量? [复制]

Posted

技术标签:

【中文标题】如何使用包含连字符的键将对象解构为变量? [复制]【英文标题】:How to destructure an object with a key containing a hyphen into a variable? [duplicate] 【发布时间】:2017-02-11 01:25:35 【问题描述】:

如何从键包含连字符的对象中解构属性?

例如:


  accept-ranges:"bytes",
  cache-control:"public, max-age=0",
  content-length:"1174",
  content-type:"application/json",
  date:"Mon, 03 Oct 2016 06:45:03 GMT",
  etag:"W/"496-157892e555b"",
  last-modified:"Mon, 03 Oct 2016 06:14:57 GMT",
  x-powered-by:"Express"

现在要使用解构从对象中获取content-typex-powered-by 值吗?

【问题讨论】:

我很困惑,你说你需要一个数组 - 但你提供了一个对象。它是哪一个?对象数组等..? 对不起,错字了。 一个常见的错字!键是,就像,彼此相邻^_^ 【参考方案1】:

就像你不能用连字符声明一个变量一样,你不能直接解构为一个。您需要将变量重命名为其他名称才能在当前范围内访问它。您可以使用以下解构语法来做到这一点:

const x = 
  "accept-ranges":"bytes",
  "cache-control":"public, max-age=0",
  "content-length":"1174",
  "content-type":"application/json",
  date:"Mon, 03 Oct 2016 06:45:03 GMT",
  etag:"W/496-157892e555b",
  "last-modified":"Mon, 03 Oct 2016 06:14:57 GMT",
  "x-powered-by":"Express"
;
const  "accept-ranges": acceptRanges  = x;
console.log(acceptRanges); // "bytes"

【讨论】:

以上是关于如何使用包含连字符的键将对象解构为变量? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在创建对象时假设非字符串键将使用 toString() 转换为字符串有多安全?

C++ 使用相同和/或不同的键将映射复制到另一个中

如何通过其中的键将一个深度json转换为多个深度?

我可以预先声明用于解构对象分配的变量吗? [复制]

如何使用键将对象添加到 NSMutableDictionary?

复习es6-解构赋值+字符串的扩展