Javascript 对相同元素的连续对进行计数
给定一个数组Javascript 对相同元素的连续对进行计数,javascript,arrays,Javascript,Arrays,给定一个数组arr[],如果数组中连续1,则任务是返回true: let arr = [0,0,0,0,0,0,1,1,0,1,1,1,1] // returns false => 4 consecutive 1 let arr = [0,0,0,0,0,1,1,0,1,1,1,1,1,0,0] // returns true => 5 consecutive 1 注意:数组只包含0和1。您可以使用for循环来执行此操作,迭代数组的每个条目,如果计数器为1,则递增计数器,如果计数器
arr[]
,如果数组中连续1
,则任务是返回true
:
let arr = [0,0,0,0,0,0,1,1,0,1,1,1,1] // returns false => 4 consecutive 1
let arr = [0,0,0,0,0,1,1,0,1,1,1,1,1,0,0] // returns true => 5 consecutive 1
注意:数组只包含0和1。您可以使用for循环来执行此操作,迭代数组的每个条目,如果计数器为1,则递增计数器,如果计数器为0,则重置计数器
let arr1=[0,0,0,0,0,1,1,0,1,1,1]//返回false=>4个连续的1
设arr2=[0,0,0,0,1,1,0,1,1,1,1,1,1,0,0]//返回true=>5个连续的1
设arr3=[0,0,0,0,1,1,0,0,0,0,1,1,1]//返回true=>5个连续的1
函数hasConcertiveOne(arr){
设计数器=0;
对于(i=0;i
您可以尝试以下方法:
const fiveOnes = (arr) => {
let oneCount = 0;
for(let a of arr){
if(a===0){
oneCount = 0;
}
else{
oneCount++;
if(oneCount>=5) break;
}
}
return (oneCount >= 5);
}
编辑:每次获得“1”时递增计数器,并在数组中获得“0”时将计数器重置回0。当连续“1”的总计数等于5时,退出循环以节省时间并返回结果 你可以用计数器检查一下
constcheck5=array=>array.some((c=>v=>!(v?++c:(c=-5))(-5));
log(检查5([0,0,0,0,0,0,0,1,1,0,1,1,1]);
log(检查5([0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,0])代码>任务是什么?张贴的问题似乎根本不包括解决问题的任何尝试。Stack Overflow希望您这样做,因为您的尝试有助于我们更好地了解您想要什么。请编辑问题以显示您已尝试的内容,以便说明您在考试中遇到的具体障碍。有关更多信息,请参阅并阅读。仅代码的答案通常被认为是低质量的。“你能给你的答案加一个解释吗?”莱蒙·卡齐,我同意。谢谢你的评论。