2017-06-03 10 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つが文字列である場合、オブジェクトのプロパティをどのように破棄できますか?

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

作業のように有効なキーの名前を提供することにより、

+1

この[MDNセクション]を参照してください(https://developer.mozilla.orgスニペット/ ja/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Invalid_JavaScript_identifier_as_a_property_name) –

答えて

4

Destructureそれは

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

はい、そのように見えますが、そうではありません。 –