Példák nyílfüggvény és normál JS függvény használatára

A karakterlánc megfordítása vagy a szám megfordítása az egyik leggyakrabban feltett kérdés a programozási interjúk során. Vizsgáljuk meg, hogyan történik ez.
Szabályok / korlátozások :
- A negatív számoknak negatívnak kell maradniuk.
volt. -12345
válik-54321
- Minden vezető nullát el kell távolítani.
volt. 321000
válik 123
& nem000123
- A függvény úszókat vagy egész számokat képes elfogadni.
volt. 543.2100
válik12.345
- A függvény egész számokat ad vissza egész számként.
volt. 54321
válik 12345
& nem12345.00
Nyílfunkcióval történő megoldás:
const reversedNum = num => parseFloat(num.toString().split('').reverse().join('')) * Math.sign(num)
Megoldás normál funkcióval:
function reversedNum(num) { return ( parseFloat( num .toString() .split('') .reverse() .join('') ) * Math.sign(num) ) }
A nyíl és a normál funkció közötti különbség:
Ebben a példában az egyetlen különbség a Nyíl függvény és a Rendszeres függvény között az, hogy a Rendszeres függvénynek explicit return
értéket kell megadnia .
A nyílfüggvényeknek implicit return
értéke van - ha egy sorba írhatók, a {}
zárójelek használata nélkül.
Bontjuk le a lépéseket:
- Konvertálja a számot karakterlánccá
num.toString()
az adott számot String-vé alakítja. Tesszük ezt, hogy a következő split
funkciót használhassuk rajta.
let num = -5432100 num.toString() // num = '-5432100'
- Bontsa a húr tömbre
num.split('')
a karakterláncot karaktertömbökké alakítja. Ezt azért tesszük, hogy használhassuk az Array reverse funkciót ( ami nem működik egy String-en ).
// num = '-5432100' num.split('') // num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
- Fordítsa meg a tömböt
num.reverse()
megfordítja a tömb elemeinek sorrendjét.
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ] num.reverse() // num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
- Csatlakozzon vissza egy húrba
num.join('')
újra összeállítja a megfordított karaktereket karakterlánccá.
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ] num.join('') // num = '0012345-'
- A bemeneti érték lebegőpontos számgá elemzése :
parseFloat(num)
Stringből úszóvá alakul num
.
// num = '0012345-' parseFloat(num) // num = 12345
Megjegyzés :parseFloat
a végén fut (annak ellenére, hogy a függvény első sorában van) a megfordított számon, és eltávolítja az összes vezető nullát.
- Szorozzuk meg az eredeti szám előjellel - a negatív érték fenntartása érdekében.
num * Math.sign(num)
megszorozza a számot az eredeti szám előírásával.
// original value of num = -5432100 // num = 12345 num * Math.sign(-5432100) // num = -12345
És itt van!