给出一个非负整数,按顺序返回一个数组或单个数字的列表。
digitize(n)
:将多个数字分开成一个数组。
参数:
n: number - Number to be converted
返回值:
Array<number> - Array of separated single digit integers
示例:
n 123
Return value [1,2,3]
这是我所做的
Function digitize(n) {
let number =[ ];
let stringDigi = n.tostring();
for (let i = 0, len = stringDigi.length; i < len; i++) {
number.push (+stringDigi.charAt(i));
}
return number;
}
答案 0 :(得分:1)
只需使其简单
const fn = n => n.toString().split('').map(e => parseInt(e))
console.log(fn(123))
并注意语法。
function
不是Function
toString()
不是tostring()
答案 1 :(得分:0)
对于非负整数(0、1,...),可以使用toString()或template string,后跟split()和map(),请使用{ {1}}运算符可将您的数字转换为数字:
+
另一种方法是使用match(/\d/g)使用正则表达式提取数字。此方法适用于所有数字而无需修改,除了const digitize = n => `${n}`.split('').map(x => +x);
console.log(...digitize(0));
console.log(...digitize(1234));
可以在传入|| []
时处理不匹配项:
undefined/null
要使第一种方法适用于所有数字const digitize = n => (`${n}`.match(/\d/g) || []).map(x => +x)
console.log(...digitize(0));
console.log(...digitize(1234));
console.log(...digitize(-12.34));
console.log(...digitize(undefined));
和null
,必须在filter()值上添加三进制和isNaN():
undefined
如果要使用for循环,建议使用const digitize =
n => n || n === 0 ? `${n}`.split('').map(x => +x).filter(x => !isNaN(x)) : [];
console.log(...digitize(0));
console.log(...digitize(1234));
console.log(...digitize(-12.34));
console.log(...digitize(undefined));
。编写for/of
和function
时也要注意这种情况:
toString
答案 2 :(得分:0)
你可以
function digitize(n) {
return (n).toString().split("");
}