2016-08-05 30 views
0

Ich habe ein JavaScript-Objekt:Declare leer es6 innen Objekt Set wörtliche

let component = { 
       id: comp.id, 
       name: comp.name, 
       attributes: { 
        initial: [ 
        ], 
        final: [ 
        ] 
       } 
      }; 

Um Doppel in initial und final Eigenschaften zu verhindern will ich Set statt array verwenden, aber wie erklären wir Set ohne Innen new Betreiber Objektliteral? Ich möchte vermeiden Sie folgendermaßen vorgehen, wenn möglich:

component.attributes.initial = new Set(); 

component.attributes.final = new Set(); 
+0

Warum denken Sie, dass Sie die Eigenschaft nachträglich zuweisen müssen, wenn Sie 'neues Set' verwenden? –

+1

@FelixKling Ich fühle mich so dumm diese Frage zu stellen, anstatt es zuerst auszuprobieren –

+0

* aber wie deklarieren wir Set ohne 'neuen' Operator innerhalb des Objektliterals, ich möchte folgendes vermeiden wenn möglich * Warum? –

Antwort

2

Es gibt nichts falsch daran, einen leeren Satz innerhalb des Objektliterals zu deklarieren:

0
attributes: { 
        initial: new Set([]), 
        final: new Set([]) 
       } 
+0

Sind nicht die '[]' innerhalb 'neuen Satz ([])' redundant? –

+0

Es sollte gezeigt werden, dass Sie im Konstruktor eine erste Menge von Werten für die Menge angeben können. – Ankur

0

Sie jeden Ausdruck als Wert einer Eigenschaft in einem Objektliteral verwenden können, die new Set beinhaltet:

{ 
    initial: new Set(), 
    final: new Set(), 
}