Советы по оптимизации, из личного опыта или ресурса - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть приведенный ниже код, который преобразует входные данные либо текстовые, либо строковые целочисленные значения в массив с каждой цифрой в качестве элементов массива.

Ниже приведена моя реализация:

function digitize(currentInput) {
  let arr = [];
  currentInput = parseInt(currentInput)
  return function divideRecursively(currentInput, arr) {
    let lastDigit = 0;
    let integerPath = 0;
    if (currentInput == 0) {
      return;
    }
    integerPath = Math.floor(currentInput / 10);
    lastDigit = currentInput - (integerPath * 10);
    currentInput = integerPath;
    divideRecursively(currentInput, arr);
    arr.push(lastDigit);
    return arr;
  }(currentInput, arr)
}

console.log(digitize(123));

Мне нужен совет по оптимизации кода и возможных лазеек, если таковые имеются.

1 Ответ

0 голосов
/ 18 февраля 2019

Вы можете использовать split для получения цифр, а затем вызов parseInt для преобразования их из строки в число:

var input = '123';

console.log(input.split('').map(digit => parseInt(digit)));

Конечно, вы можете проверить, является ли ввод числом, используя !Number.isNaN или окружить все это с помощью try/catch.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...