2017-07-03 2 views
0

Ich habe eine Funktion aus dem Internet kopiert. Ich weiß nicht mehr wo ich es kopiert habe. Allerdings habe ich den Code heute auf den verschiedenen Browsern getestet und stieß auf einen Fehler in IE Sytax.Wie funktioniert diese Pfeilfunktion in allen Browsern?

Der folgende Code ist die Mühe Hersteller:

Object.keys($location.search()).forEach((key) => ($location.search()[key] == null || $location.search()[key] == "") && $location.search([key], null)); 

Dieses Stück Code entfernt keys ohne einen Wert in $location Objekts Winkel.

Nach einer schnellen Google-Suche, habe ich gesehen, dass arrow functions nicht von allen Browsern unterstützt werden. Siehe auch diese question.

Ich versuchte, die => mit nur einer einfachen = zu ersetzen. Das funktioniert aber nicht.

Meine Frage ist nun, wie kann ich den obigen Code unter allen Browsern arbeiten?

+0

Fehlende 'Funktion' Verwendung' Funktion (Taste) {...} ' – Satpal

+0

Ups, Entschuldigung. Das fehlende '=>' hinzugefügt. Danke für's Bemerken :) – Red

Antwort

2

Sie entweder in ein function selbst umwandeln kann oder so etwas wie Babel verwenden es

Object.keys($location.search()).forEach(function (key) { 
    return ($location.search()[key] == null || $location.search()[key] == "") && $location.search([key], null) 
}); 
für Sie zu tun
+1

Ich habe diesen Code kopiert und funktioniert unter allen Browsern. Vielen Dank! – Red

1

Verwenden Sie einfach eine anonyme Funktion (siehe Dokumentation auf forEach):

Object.keys($location.search()).forEach(function (key) { 
    return ($location.search()[key] == null || $location.search()[key] == "") 
      && $location.search([key], null); 
}); 
+0

Danke für den Gruss und deine Zeit! – Red

2

Um einen Pfeil Funktion ersetzen Sie kann nicht nur ein = verwenden, müssen Sie wie eine reguläre Funktion Anweisung:

(param) => { 
    //code block 
} 

function(param) { 
    //code block 
} 
+1

Danke für den Gruss und deine Zeit! – Red

Verwandte Themen