2017-03-08 6 views
3

sagt mein state ist wie folgt:Destrukturierung von es6 aber vorbei dynamische Variable

{ 
    item:{ 
     a:'a', 
     b:'b' 
    } 
} 

Dann bin ich in der Lage a von Element zu ziehen, indem Sie:

const { a } = this.state.item

aber dynamisch ziehen unter Verwendung von {} von es6?

Zum Beispiel const { variable } = this.state.item, wobei die Variable a oder b sein kann.

+2

Sie können eine 'const' nicht neu definieren, einen anderen Wert zu haben. Welche Variable sollte die Ausgabe enthalten? Ich sehe aus, als würden Sie [berechnete Eigenschaft Destrukturierung] benötigen (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Computed_object_property_names_and_destrukturing) – 4castle

Antwort

1

Als 4castle können Sie Computed object property names and destructuring mit einem zusätzlichen Schlüssel/Wert-Paar Variablen für die Destrukturierung verwenden.

var object = { item: { a: 'a0', b: 'b0' } }, 
 
    key = 'b', 
 
    value; 
 

 
({ [key]: value } = object.item); 
 

 
console.log(value);

+0

das ist viel zu kompliziert, ich ziemlich einfach Tun Sie es sonst und weisen Sie es einer normalen Variablen zu. –

+1

haben Sie nach Destrukturierung gefragt. Der Rest liegt an dir. –

+1

@AlexYong Destrukturierung wird nur sinnvoll, wenn Sie dies mit mehr als einer Eigenschaft gleichzeitig tun müssen. Andernfalls könnten Sie auch 'const value = object.item [key];' – 4castle

Verwandte Themen