js数组连续筛选处理方法是什么

这篇文章主要讲解了“js数组连续筛选处理方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“js数组连续筛选处理方法是什么”吧!

创新互联建站专注于祥云网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供祥云营销型网站建设,祥云网站制作、祥云网页设计、祥云网站官网定制、重庆小程序开发服务,打造祥云网络公司原创品牌,更为您提供祥云网站排名全网营销落地服务。

算法面试题:

有一个数组[1,1,1,2,3,4,5,8,10,22,24,25,26,66],请写一个方法把数组变成[1,1,[1,2,3,4,5],8,10,22,[24,25,26],66]

大体思路就是循环遍历,每次遍历判断当前项是否与前一项差值为1,这里需要考虑若结果为1,如何处理,结果不为1如何处理。

结果不为1,我们可以直接将当前项插入结果数组,但是这里我们需要考虑边界问题,我们设置两个变量,第一个变量数组长度len,第二个变量数组遍历开始的位置i,为了方便,我们将i设置为1。

此时代码如下:

var len = arr.length;
var res = [];
for (var i = 1; i <= len; i++) {
 // something
}

加上判断逻辑:

var len = arr.length;
var res = [];
for (var i = 1; i <= len; i++) {
 if(arr[i]-arr[i-1]!==1){
   // someting
 }else{
   // someting
 }
}

接下来如何做呢?

我们可以这么干,再次声明一个标记变量j,j的初始值为0;

此时我们再次观察一下需要处理的数组:

[1,1,1,2,3,4,5,8,10,22,24,25,26,66]

通过观察数组我们可以发现,当我们循环遍历每一项,从脚标1开始,如果当前项与前一项的差值不为1,我们可以直接将前一项推入结果数组,并标记此时的i值,即将i值赋值为j来保存。

如果差值等于1,什么也不做,直接跳过,再次观察上面的数组,当判断遇到:”1,2,3,4,5”,这几项时,直接跳过,此时res的结果是[1,1],之后接着循环,当循环遍历判断8-5时,我们需要将1,2,3,4,5作为一个数组整体推入结果数组。

此时发现j的值为2,i的值为7,我们只需要将原数组中第二项到第七项(不包括第七项)截取出来,塞进结果数组,并更新j值。

那么在代码中执行时,何时塞入当前项(前一项),何时塞入截取的的数组呢?可以根据i和j的差值来判断,若i-j的差值大于一,则截取原数组j到i的结果塞入结果数组,代码如下:

var arr = [1,1,1,2,3,4,5,8,10,22,24,25,26,66]
var len = arr.length
var i = 1, j = 0
var rst = []
for(; i <= len; i++) {
 if(arr[i]-arr[i-1] !== 1) {
   i-j===1 ? rst.push(arr[j]) : rst.push(arr.slice(j, i))
   j = i
 }
}
console.log(rst);

代码里用到了一个三元运算符,通过判断i与j的差值来判断向数组中塞入何值。

感谢各位的阅读,以上就是“js数组连续筛选处理方法是什么”的内容了,经过本文的学习后,相信大家对js数组连续筛选处理方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!

标题名称:js数组连续筛选处理方法是什么
URL分享:https://www.cdcxhl.com/article14/gsspge.html

成都网站建设公司_创新互联,为您提供网站维护定制开发动态网站响应式网站面包屑导航静态网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站网页设计