我有以下代码将给定输入(文本或字符串整数值)转换为一个数组,每个数字作为数组的元素。
下面是我的实现:
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));
我需要有关优化代码和可能存在漏洞的建议。
答案 0 :(得分:0)
您可以使用split
来获取数字,然后进行parseInt
调用以将它们从字符串转换为数字:
var input = '123';
console.log(input.split('').map(digit => parseInt(digit)));
当然,您可以使用!Number.isNaN
来检查输入是否为数字,或者使用try/catch
将整个内容括起来。