标签:const start 快手 -- let 相邻 去除 91 data
题目:去除数组中3个及以上相邻的0
const data = [1, 2, 3, 0, 0, 0, 5, 2, 0, 1, 0, 0, 2];
//去除三个及以上相邻的0
//返回结果:[1,2,3,5,2,0,1,0,0,2]
//去除三个及以上相邻的0
const data = [1, 2,0,0, 3, 0, 0, 0,0, 5, 2, 0, 1, 0, 0, 0];
// [1, 2, 0, 0, 3, 5, 2, 0, 1]
//const data = [1, 2, 3, 0, 0, 0, 5, 2, 0, 1, 0, 0, 2];
//返回结果:[1,2,3,5,2,0,1,0,0,2]
let start=0,count=0; // start记录0开始的位置
let res = [];
for(let i=0;i<data.length;i++){
if(data[i]==0){//1.遇到0
count++;
}else{ //2. 遇到非0,退出本次循环
start = i+1;
count = 0;
continue;
}
if(count<3){ //3.遇到0的个数小于3,退出本次循环
continue;
}
//4. 0的个数>=3, 继续查找后面是否有0
while(i+1<data.length && data[i+1]==0){
i++;
count++;
}
//5. 删除0
data.splice(start,count);
//6. 数组长度变化,将i回退。
i = i-count+1;
//7. 重置start和count
start = i;
count = 0;
}
console.log(data)
标签:const,start,快手,--,let,相邻,去除,91,data 来源: https://blog.csdn.net/sunnnnh/article/details/120849995
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。