Приклади використання функції стрілки та звичайної функції JS

Обернення рядка або задня цифра - одне з найпоширеніших питань, що задаються на програмуванні інтерв’ю. Давайте подивимось, як це робиться.
Правила / Обмеження :
- Негативні числа повинні залишатися негативними.
напр. -12345
стає-54321
- Будь-які початкові нулі слід видалити.
напр. 321000
стає 123
& ні000123
- Функція може приймати плаваючі або цілі числа.
напр. 543.2100
стає12.345
- Функція поверне цілі числа як цілі.
напр. 54321
стає 12345
& ні12345.00
Вирішення за допомогою функції стрілки:
const reversedNum = num => parseFloat(num.toString().split('').reverse().join('')) * Math.sign(num)
Вирішення за допомогою регулярної функції:
function reversedNum(num) { return ( parseFloat( num .toString() .split('') .reverse() .join('') ) * Math.sign(num) ) }
Різниця між функцією стрілки та звичайною функцією:
У цьому прикладі єдина різниця між функцією стрілки та функцією Regular полягає в тому, що функція Regular повинна надати явне return
значення.
Функції стрілок мають неявне return
значення - якщо їх можна записати в один рядок, не потребуючи {}
фігурних дужок.
Давайте розберемо етапи:
- Перетворіть число у рядок
num.toString()
перетворює задане число у рядок. Ми робимо це, щоб ми могли використовувати split
наступну функцію.
let num = -5432100 num.toString() // num = '-5432100'
- Розбийте рядок на масив
num.split('')
перетворює рядок у масив символів. Ми робимо це, щоб ми могли використовувати функцію Array reverse ( яка не працює на рядку ).
// num = '-5432100' num.split('') // num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
- Змінити масив
num.reverse()
змінює порядок елементів у масиві.
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ] num.reverse() // num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
- З’єднайте його назад у рядок
num.join('')
повторно збирає зворотні символи у рядок.
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ] num.join('') // num = '0012345-'
- Проаналізуйте вхідне значення на число з плаваючою комою:
parseFloat(num)
перетворює num
в поплавок із рядка.
// num = '0012345-' parseFloat(num) // num = 12345
Примітка :parseFloat
виконується в кінці (навіть якщо він знаходиться в першому рядку функції) на зворотному номері і видаляє всі початкові нулі.
- Помножте його на знак вихідного числа - щоб зберегти від’ємне значення.
num * Math.sign(num)
множить число на знак вихідного номера, що надається.
// original value of num = -5432100 // num = 12345 num * Math.sign(-5432100) // num = -12345
І ось вам!