我们需要编写一个函数,假设splitNumber()接受一个正整数,并返回一个由数字的所有数字的位数组成的数组。
例如-
如果输入号码是-
const num = 1234;
输出结果
那么输出应该是-
const output = [1000, 200, 30, 4];
让我们为该函数编写代码。
这个问题非常适合递归方法,因为我们将迭代数字的每个数字。
因此,返回数字的各个地方值的数组的递归函数将由-
const splitNumber = (num, arr = [], m = 1) => { if(num){ return splitNumber(Math.floor(num / 10), [m * (num % 10)].concat(arr), m * 10); } return arr; }; console.log(splitNumber(2346)); console.log(splitNumber(5664)); console.log(splitNumber(3453)); console.log(splitNumber(2)); console.log(splitNumber(657576)); console.log(splitNumber(345232));
输出结果
控制台中的输出-
[ 2000, 300, 40, 6 ] [ 5000, 600, 60, 4 ] [ 3000, 400, 50, 3 ] [ 2 ] [ 600000, 50000, 7000, 500, 70, 6 ] [ 300000, 40000, 5000, 200, 30, 2 ]