В предыдущем посте я подробно описал несколько способов перевернуть строку - часто задаваемый вопрос во время технических собеседований. Сегодня я объясню, как ответить на еще один распространенный вопрос на собеседовании, перевернув целое число.
Как указано в инструкциях, нам поручено взять целое число в качестве аргумента и вернуть целое число, которое является обратным порядком чисел.
Как вы, возможно, уже знаете, в JavaScript есть удобный встроенный метод reverse()
с соответствующим названием. Однако reverse()
можно использовать только для массивов. Хотя можно split
преобразовать строку в массив с помощью метода split()
, наш аргумент имеет Number
type, а не String
. К счастью, в JavaScript есть еще один полезный встроенный метод преобразования чисел в строки - метод toString()
.
Итак, нашим первым шагом было бы объявить переменную reversed
и установить ее равной нашему аргументу, преобразованному в строку.
После того, как наш аргумент был преобразован в строку, мы можем вызвать для него split()
, который превратит его в массив. После разделения мы можем вызвать reverse()
в новом массиве, чтобы отменить его. Наконец, мы join
обратно преобразовываем наш массив в строку с join()
.
Я предпочитаю объединять каждый метод reversed
в отдельную строку для удобства чтения.
Несмотря на то, что мы успешно изменили наш аргумент, проблема требует от нас вернуть перевернутое целое число, а reversed
в настоящее время является строкой. Чтобы преобразовать нашу перевернутую строку обратно в целое число, мы можем использовать другой удобный встроенный метод parseInt()
.
Теперь, когда reverseInt()
возвращает обратное целое число, он не работает правильно с отрицательными целыми числами и в настоящее время игнорирует отрицательный символ (-
).
В моей прошлой статье я привел примеры некоторых наиболее распространенных методов Math Object
JavaScript. Одним из методов, которые я обсуждал, был Math.sign()
, который можно использовать для решения нашей проблемы. Math.sign()
принимает целое число в качестве аргумента и возвращает 1
, если переданное целое число было положительным числом или -1
, если целое число было отрицательным. Это означает, что мы можем передать аргумент нашей функции n
в Math.sign()
и умножить результат на наше обратное целое число.
Если аргумент reverseInt()
является отрицательным целым числом, наша инструкция return будет решением parseInt(reversed) * -1
, которое приведет к обратному отрицательному целому числу.
Вывод
Хотя вам, скорее всего, никогда не понадобится переворачивать целое число в реальном мире, знание того, как это сделать, - отличный способ продемонстрировать свои навыки решения проблем во время собеседования.
Обращение целого числа происходит примерно так же, как обращение строки, но с несколькими добавленными шагами, чтобы заставить его работать правильно. Комбинируя встроенный JavaScript и Math
методы, такие как toString()
, parseInt()
и Math.sign()
, вы сможете произвести впечатление на собеседника, создав функцию, которая переворачивает любое целое число.