Created
October 7, 2015 22:38
-
-
Save niftydevelopment/ddac7170f6ec69a3dfd6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Faltarende.getSenasteSammanstalltResultat = function() { | |
| var latestDatum = -1; | |
| var latestResult = null; | |
| this.kontroller.forEach(function(kontroll) { | |
| if (kontroll.getSenasteSammanstalltResultatByTyp) { | |
| var senasteSammanstalldaForKontroll = kontroll.getSenasteSammanstalltResultatByTyp('FALTARENDE'); | |
| if (senasteSammanstalldaForKontroll && senasteSammanstalldaForKontroll.skapadDen > latestDatum) { | |
| latestDatum = senasteSammanstalldaForKontroll.skapadDen; | |
| latestResult = senasteSammanstalldaForKontroll; | |
| } | |
| } | |
| }); | |
| return latestResult; | |
| }; | |
| Faltarende.getSenasteSammanstalltResultat2 = function() { | |
| return this.kontroller.filter(kontroll => { | |
| return kontroll.getSenasteSammanstalltResultatByTyp && | |
| kontroll.getSenasteSammanstalltResultatByTyp('FALTARENDE'); | |
| }).map(kontroll => { | |
| return kontroll.getSenasteSammanstalltResultatByTyp('FALTARENDE'); | |
| }).reduce((a, b) => { | |
| if (a.skapadDen > b.skapadDen) { | |
| return a; | |
| } else { | |
| return b; | |
| } | |
| }); | |
| }; |
Author
"men jag tycker det är orättvist att tillskriva förbättringen till fat arrows. Jag vill påstå att det är ES5s array methods som står för denna!"
- Självklart är det så :-)
"Inte så stor skillnad om du frågar mig! Jag tycker nog till och med att läsbarheten är högre i ES5-varianten, dvs utan fat arrows. =P"
- De extra "function" i ES5 är nog lite mer en vanesak tror jag.Personligen tycker jag det tynger koden.
"Om du ska ge ett exempel på när fat arrows verkligen förenklar så borde du välja ett där den inre funktionen använder ett yttre kontext (implicit bind)."
- ok, förlåt ;-)
"Vill man ändå skriva funktionen med fat arrows så skulle jag förenklat den ytterligare något (och skrivit den mer kompakt, men jag behåller din formatering för jämförelsens skull):"
- Om man kan hävda att ES5:s functions ökar läsbarheten så vågar jag nog hävda att kompakt kod inte alltid är att föredra.
Exempel: a.skapadDen > b.skapadDen ? a : b vs if.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Alternativ 2 är absolut snyggare, men jag tycker det är orättvist att tillskriva förbättringen till fat arrows. Jag vill påstå att det är ES5s array methods som står för denna!
Här har du exakt samma funktion, fast utan fat arrows:
Inte så stor skillnad om du frågar mig! Jag tycker nog till och med att läsbarheten är högre i ES5-varianten, dvs utan fat arrows. =P
Om du ska ge ett exempel på när fat arrows verkligen förenklar så borde du välja ett där den inre funktionen använder ett yttre kontext (implicit bind).
Vill man ändå skriva funktionen med fat arrows så skulle jag förenklat den ytterligare något (och skrivit den mer kompakt, men jag behåller din formatering för jämförelsens skull):