2017-06-03 74 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

是的,它看起來像它,但它不是,我自己也堅持了很長時間:) –