Wie man ES6 Fat Arrow verwendet, um .filter () ein Array von Objekten zu verwenden
Ich versuche, ES6-Pfeil-Funktion mit .filter
zurückkehren Erwachsene (Jack & Jill). Es scheint, ich kann nicht verwenden Sie eine if-Anweisung.
Was muss ich wissen, um dies zu tun, in ES6?
var family = [{"name":"Jack", "age": 26},
{"name":"Jill", "age": 22},
{"name":"James", "age": 5 },
{"name":"Jenny", "age": 2 }];
let adults = family.filter(person => if (person.age > 18) person); //throws error
(8:37) SyntaxError: unknown: Unexpected token (8:37)
|let adults = family.filter(person => if (person.age > 18) person);
Meine arbeiten ES5 Beispiel:
let adults2 = family.filter(function (person) {
if (person.age > 18) { return person; }
});
Kommentar zu dem Problem - Öffnen
Welche Fehler gilt es zu werfen?
(8:37) SyntaxError: unbekannt: Unerwartetes token (8:37) |wir lassen uns Erwachsene = Familie.filter(person => if (person.Alter > 18) Personen);
Ja, was ist der Fehler??? Auch Menschen - variable existiert nicht!!!
InformationsquelleAutor der Frage Henry Zhu | 2015-08-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Pfeil-Funktionen erlauben die Verwendung einer Ausdruck oder eine block als Ihre Körper. Die übergabe eines Ausdrucks
ist äquivalent zu den folgenden block
Jedoch
ist nicht ein Ausdruck,
if
ist eine Aussage. Damit würden Sie einen block, wenn Sie wollteif
in ein Pfeil-Funktion:Während das technisch löst das problem, das eine verwirrende Verwendung von
.filter
, weil es suggeriert, dass Sie zurückkehren muss, dass der Wert, der enthalten sein soll, in das Ausgabe-array. Jedoch die callback übergeben.filter
zurückgeben sollte eine Boolean, d.h.true
oderfalse
, der angibt, ob das element in das neue array ist oder nicht.Also alles, was Sie brauchen, ist
In ES5:
InformationsquelleAutor der Antwort Felix Kling
Können Sie nicht implizit Rückkehr mit einer
if
, müssen Sie die Klammern:Kann vereinfacht werden, wenn:
InformationsquelleAutor der Antwort Kit Sunde