2016-05-06 5 views
0

Ich lerne aus dem Projekt angular2-rxjs-Chat-Anwendung ong Github. In dem Code here gibt es eine Codezeile unten angegeben:Wie funktioniert der Zuweisungsteil in der folgenden Codezeile in Angular2?

threads[message.thread.id] = threads[message.thread.id] || 
     message.thread; 

wo früher auf der Leitung 29 in dem Code definieren Fäden wurden wie unten gezeigt:

let threads: {[key: string]: Thread} = {}; 

die Kommentare in dem Kodex soll "Speichern Sie den Thread der Nachricht in unseren Acuuculator-Threads. Ich brauche ein wenig Erklärung, wie die Zuweisung in Zeile 31 funktioniert, da auf beiden Seiten des Zuweisungsoperators dasselbe gilt, also Threads [message.thread.id] Wenn die Aussage in Zeile 31 wie folgt lautet:

(threads[message.thread.id] = message.thread;) 

dann würde ich es erklären, wie ein Wert einem Schlüssel in der Karte "Threads" zugewiesen wird. Aber ich verstehe die volle Linie nicht.

Antwort

0

Das bedeutet, wenn threads[message.thread.id] bereits einen Wert hat, dann behalte es, andernfalls setze den Wert auf meassage.thread.

Wenn der Teil vor || wertet auf einen Wert, truthy (nicht null, undefined, false, ...) then the part after || is not evaluated and the result from the part before || is returned otherwise the result from the expression after || `wird zurückgegeben.

Man könnte auch schreiben, als

if(!threads[message.thread.id]) { 
    threads[message.thread.id] = message.thread; 
} 
+0

Vielen Dank für Ihre Zeit und Antwort. Ich verstehe bereits, was Sie bisher in Ihren drei Absätzen erklärt haben. Bitte erläutern Sie diesen Teil. –

+0

Aber wenn das Objekt bereits nicht existiert, behalten wir den bereits existierenden Wert bei, aber der Code weist einem Schlüssel einen Schlüssel zu, anstatt einem Schlüssel einen Wert zuzuweisen. threads [nachricht.thread.id] = threads [nachricht.thread.id]; Auf beiden Seiten des Zuweisungsoperators haben wir einen Schlüssel. Wie kann das gleiche Stück Code den Schlüssel auf der linken Seite des Zuweisungsoperators darstellen, während das gleiche Stück Code einen Wert darstellt, der dem Schlüssel auf der rechten Seite des Zuweisungsoperators zugeordnet ist? –

+0

Wenn es bereits existiert, wird der Wert nur ihm selbst zugewiesen. –

Verwandte Themen