一、for循环法遍历法
function getZeroCount(num) {
let count = 0;
let regObj = /0/g;
for (let i = 1; i <= num; i++) {
let str = '' + i;
let match = str.match(regObj);
count += match == null ? 0 : match.length;
}
return count;
}
console.log(getZeroCount(10000));
二、split切割法
function getZeroCount(num) {
return Array.from({length: num}, (v, i) => i + 1).join().split("0").length - 1;
}
console.log(getZeroCount(10000));
切割法思路
首先,判断一个字符串有几个0,除了正则外还可以利用.split()。比如:var str = "1029304910"; var len = str.split("0").length - 1;
其次,有没有必要把每个数字挨个检验?或许可以先把他们拼接起来,比如利用Array.join()。