提问人:Deleso 提问时间:11/6/2022 更新时间:11/6/2022 访问量:105
如何在 Javascript 中计算“0”序列?
How can I count "0" sequences in Javascript?
问:
我有这个值:[0, 0, 0, 0, 1],我想写一个代码,告诉我有 1 行 4 个零,如上面的例子,如果有 2 行 4 个零,如:[0, 0, 0, 0, 1, 0, 0, 0, 0] 从今以后,它应该说有 2 行,每行 4 个零。如果你们能帮我,我该怎么做??
我没有尝试过任何东西,我只考虑过用 i 索引数零,但它只是很好地数零,就像有 4 个零一样,但我想数有多少行零。
答:
0赞
Nina Scholz
11/6/2022
#1
您可以搜索并存储它的最后一个位置。重复上述步骤,直到没有找到更多项目,并检查是否存在剩余项目。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
0赞
damonholden
11/6/2022
#2
使用正则表达式和实例方法的函数式方法:
const numbers = [0, 0, 0, 0, 1, 0, 0, 0, 0];
const getRowsOfZeros = (array) => array.join('').match(/0{4}/g).length;
getRowOfZeros(numbers) // 2
该函数将返回一个整数,表示所提供的数组中 4 的出现次数。0
有关此处任何方法的清晰信息,请参阅 MDN。
希望这会有所帮助。
评论
0赞
Deleso
11/6/2022
谢谢你的回答,我肯定会发现这在未来很有用。
评论
[0, 0, 0, 0, 1, 0, 0, 0, 0]
1