来自个人经验或资源的优化建议

时间:2019-02-18 09:36:19

标签: javascript performance

我有以下代码将给定输入(文本或字符串整数值)转换为一个数组,每个数字作为数组的元素。

下面是我的实现:

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 :(得分:0)

您可以使用split来获取数字,然后进行parseInt调用以将它们从字符串转换为数字:

var input = '123';

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

当然,您可以使用!Number.isNaN来检查输入是否为数字,或者使用try/catch将整个内容括起来。