2017-06-03 56 views
2

ES6 - 如何使用字符串键从对象中解构?

{ 
    hello_en: 'hello world', 
    'hello_zh-CN': '世界您好', 
    something: 'nice day', 
    something_else: 'isn\'t it' 
} 

被传递给函数

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 
} 

当然hello_zh-CN,但对象不是有效的键名。

我无法写

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

为给出了一个错误。

当某个键是字符串时,如何解构对象的属性?

+1

请参阅本[MDN节(https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment #Invalid_JavaScript_identifier_as_a_property_name) –

回答

4

解构它通过提供一个有效的密钥名称,如

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

工作片断

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);

+0

非常感谢。一旦它出现在我面前,答案似乎非常明显。 :-) –

+0

是的,它看起来像它,但它不是,我自己也坚持了很长时间:) –

相关问题