如何在 Javascript 中计算"0"序列?



我有这样的值:[0,0,0,0,1],我想写一个代码,告诉我有1行4个0,就像上面的例子一样,如果有2行4个0,就像:[0,0,0,0,1,0,0,0,0]从今往后,它应该说有2行4个0。如果你们能帮我,我怎么能做到呢?

我没有尝试过任何东西,我只考虑过用I索引计数0,但它只是计数0,就像有4个0一样,但我想计数有多少行0。

您可以搜索1并存储它的最后位置。重复操作,直到没有多余的项目,并检查是否存在剩余的项目。

const
    fn = array => {
        const counts = [];
        let l = 0,
            i = array.indexOf(1);
        
        while (i !== -1) {
            counts.push(i - l);
            l = i + 1;
            i = array.indexOf(1, i + 1);
        }
        if (array.length - l > 0) counts.push(array.length - l);
        return counts;
    };

console.log(...fn([0, 0, 0, 0, 1]));             // 4
console.log(...fn([0, 0, 0, 0, 1, 0, 0, 0, 0])); // 4 4
console.log(...fn([0, 0, 0, 0, 1, 0, 0, 0, 0, 1])); // 4 4

使用regexp和实例方法的函数式方法:

const numbers = [0, 0, 0, 0, 1, 0, 0, 0, 0];
const getRowsOfZeros = (array) => array.join('').match(/0{4}/g).length;
getRowOfZeros(numbers) // 2

函数将返回一个整数,表示四个0在给定数组中出现的次数。

要了解这里的任何方法,请参阅MDN。

希望对你有帮助。

相关内容

  • 没有找到相关文章

最新更新