计算1-10000中出现的0 的次数

一、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()。

发布了125 篇原创文章 · 获赞 3 · 访问量 5858

猜你喜欢

转载自blog.csdn.net/z591102/article/details/105135656