javascript计算一个数字函数问题中的数字



我想数一个数字的数字,我发现这个函数

function countDigits(y){
num = parseInt(y)
count = 0
if (num >= 1)
++count;
while (num / 10 >= 1) {
num /= 10;
++count;
}

return count;
}
console.log(countDigits("123456"));
console.log(countDigits("1"));
console.log(countDigits("012"));

我从一个字符串数字y中获取输入

这个函数的问题是,当一个数字以零开头时,它不算数?

parseInt将忽略前导零。您需要这样的内容:

function countDigitsInANumericString(numeric) {
return numeric.split('').filter((n) => Number.isFinite(parseInt(n))).length;
}
console.log(countDigitsInANumericString('0a1023')); // 5
console.log(countDigitsInANumericString('0123')); // 4
console.log(countDigitsInANumericString('123456')); // 6

我更新了上面的函数来计算数字字符串开头的0。虽然也可以有其他方法。

var y = '000102';
var num = parseInt(y);
var count = 0;
while (y[count] == '0') {
++count;
}
if (num >= 1) {
++count;
}
while (num / 10 >= 1) {
num /= 10;
++count;
}
console.log(count);

最新更新