ES6 - 如何使用字符串键从对象中进行结构化?

Dav*_*Sag 10 javascript destructuring ecmascript-6

我有一个对象

{
  hello_en: 'hello world',
  'hello_zh-CN': '????',
  something: 'nice day',
  something_else: 'isn\'t it'
}
Run Code Online (Sandbox Code Playgroud)

传递给一个函数

function(data) {
  const { hello_en, hello_zh-CN, ...rest } = data
  // do some stuff with hello_en and hello_zh-CN
  // so some other stuff with rest
}
Run Code Online (Sandbox Code Playgroud)

但当然hello_zh-CN不是有效的关键名称.

我无法写

const { hello_en, 'hello_zh-CN', ...rest } = data
Run Code Online (Sandbox Code Playgroud)

因为这会给出错误.

当其中一个键是字符串时,如何构造对象的属性?

Shu*_*tri 17

通过提供有效的密钥名称来构建它

  const { hello_en, 'hello_zh-CN': hello_zHCN, ...rest } = data
Run Code Online (Sandbox Code Playgroud)

工作片段

var data = {
  hello_en: 'hello world',
  'hello_zh-CN': '????',
  something: 'nice day',
  something_else: 'isn\'t it'
}

const { hello_en, 'hello_zh-CN': hello_zHCN, ...rest } = data

console.log(hello_zHCN);
Run Code Online (Sandbox Code Playgroud)