Автор оригинала: FreeCodeCamp Community Member.
Артисмарти
Примеры с использованием функции стрелки и обычной функции 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)
)
}Разница между функцией стрелки и регулярной функцией:
В этом примере единственная разница между функцией стрелки и регулярной функцией заключается в том, что регулярная функция должна обеспечить явную Возвращение значение.
Функции стрелки имеют неявное Возвращение Значение – если они могут быть написаны в одной строке, без необходимости {} брекеты
Давайте сломаем шаги вниз:
- Преобразовать номер в строку
num.tostring () Преобразует данный номер в строку. Мы делаем это, чтобы мы могли использовать Сплит Функция на этом дальше.
let num = -5432100 num.toString() // num = '-5432100'
- Разделить строку в массив
num.split ('') Преобразует строку в массив символов. Мы делаем это, поэтому мы можем использовать обратную функцию массива ( которая не работает над строкой ).
// 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
Примечание : Партифлет работает в конце (Хотя это на первой строке функции) на обратном номере и удаляет любые ведущие нули.
- Умножить это по знак оригинального номера – поддерживать отрицательное значение.
Num * Math.sign (Num) Умножьте номер с признаком исходного номера.
// original value of num = -5432100 // num = 12345 num * Math.sign(-5432100) // num = -12345
И там у вас есть!