Verwendung von if-else in JavaScript ES6

7

Ich lerne ES6 und folgendes ist mein ES5-Code, der gut läuft -

%Vor%

Wenn ich dies jetzt in ES6 umwandele, erhalte ich Fehler von Unexpected token near if , lass mich wissen, was ich hier falsch mache -

Mein ES6 -Code -

%Vor%     
Nesh 04.04.2016, 06:49
quelle

5 Antworten

9

Das liegt daran, dass die Pfeilfunktionen Ausdrücke akzeptieren, während Sie eine Anweisung übergeben.

Ihr Code ist irreführend: Array.prototype.map bedeutet, dass Sie das Ergebnis irgendwie verwenden würden, während Sie es nicht sind.

Wenn Sie die Semantik Ihres Codes verbessern möchten, verwenden Sie Array.prototype.forEach , das speziell dafür entworfen wurde, über ein Array zu iterieren und nichts zurückzugeben:

%Vor%

Referenzen:

zerkms 04.04.2016, 06:53
quelle
6

Sie sollten den ternären Operator für Inline-Bedingungen verwenden.

%Vor%     
Lewis 04.04.2016 06:51
quelle
4

Wenn Sie keine Klammern verwenden, um den Körper von Arrow-Funktionen zu definieren, sollte der Körper ein Ausdruck sein. In Ihrem Fall ist es kein Ausdruck, sondern eine if -Anweisung.

Sie müssen es mit dem zusammengesetzten Körper definieren, so

%Vor%

Oder Sie sollten es definieren, um einen Ausdruck wie diesen

zurückzugeben %Vor%

Hinweis: Sie sollten dazu nicht map verwenden. map sollte nur verwendet werden, wenn Sie ein neues Array aus den Werten eines anderen Arrays erstellen müssen. Sie sollten forEach verwenden, wenn Sie mit Funktionen arbeiten, die Nebenwirkungen haben. In Ihrem Fall modifizieren Sie Objekte, die außerhalb Ihrer Funktion liegen. Also wäre forEach die beste Lösung.

    
thefourtheye 04.04.2016 06:52
quelle
4

Wenn ein Pfeilfunktionskörper mehr als eine Anweisung enthält, muss er in einem Block enthalten sein. Außerdem können Sie Semikolons nicht weglassen.

forEach ist semantischer (da Ihre Funktion einfach undefined zurückgibt und Sie das neue Array trotzdem nicht behalten) und Sie können den Wert von x%2 direkt verwenden :

%Vor%

und es gibt auch:

%Vor%     
RobG 04.04.2016 06:58
quelle
1
%Vor%

Probieren Sie den obigen Code aus. Es scheint zu funktionieren.

Ich habe gerade if..else durch den ternären Operator ( ? : ) ersetzt.

    
Ashish Panzade 04.04.2016 06:52
quelle

Tags und Links