真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

js數(shù)組連續(xù)篩選處理方法是什么

這篇文章主要講解了“js數(shù)組連續(xù)篩選處理方法是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“js數(shù)組連續(xù)篩選處理方法是什么”吧!

創(chuàng)新互聯(lián)建站專注于祥云網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供祥云營(yíng)銷型網(wǎng)站建設(shè),祥云網(wǎng)站制作、祥云網(wǎng)頁(yè)設(shè)計(jì)、祥云網(wǎng)站官網(wǎng)定制、重慶小程序開(kāi)發(fā)服務(wù),打造祥云網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供祥云網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

算法面試題:

有一個(gè)數(shù)組[1,1,1,2,3,4,5,8,10,22,24,25,26,66],請(qǐng)寫一個(gè)方法把數(shù)組變成[1,1,[1,2,3,4,5],8,10,22,[24,25,26],66]

大體思路就是循環(huán)遍歷,每次遍歷判斷當(dāng)前項(xiàng)是否與前一項(xiàng)差值為1,這里需要考慮若結(jié)果為1,如何處理,結(jié)果不為1如何處理。

結(jié)果不為1,我們可以直接將當(dāng)前項(xiàng)插入結(jié)果數(shù)組,但是這里我們需要考慮邊界問(wèn)題,我們?cè)O(shè)置兩個(gè)變量,第一個(gè)變量數(shù)組長(zhǎng)度len,第二個(gè)變量數(shù)組遍歷開(kāi)始的位置i,為了方便,我們將i設(shè)置為1。

此時(shí)代碼如下:

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
 }
}

接下來(lái)如何做呢?

我們可以這么干,再次聲明一個(gè)標(biāo)記變量j,j的初始值為0;

此時(shí)我們?cè)俅斡^察一下需要處理的數(shù)組:

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

通過(guò)觀察數(shù)組我們可以發(fā)現(xiàn),當(dāng)我們循環(huán)遍歷每一項(xiàng),從腳標(biāo)1開(kāi)始,如果當(dāng)前項(xiàng)與前一項(xiàng)的差值不為1,我們可以直接將前一項(xiàng)推入結(jié)果數(shù)組,并標(biāo)記此時(shí)的i值,即將i值賦值為j來(lái)保存。

如果差值等于1,什么也不做,直接跳過(guò),再次觀察上面的數(shù)組,當(dāng)判斷遇到:”1,2,3,4,5”,這幾項(xiàng)時(shí),直接跳過(guò),此時(shí)res的結(jié)果是[1,1],之后接著循環(huán),當(dāng)循環(huán)遍歷判斷8-5時(shí),我們需要將1,2,3,4,5作為一個(gè)數(shù)組整體推入結(jié)果數(shù)組。

此時(shí)發(fā)現(xiàn)j的值為2,i的值為7,我們只需要將原數(shù)組中第二項(xiàng)到第七項(xiàng)(不包括第七項(xiàng))截取出來(lái),塞進(jìn)結(jié)果數(shù)組,并更新j值。

那么在代碼中執(zhí)行時(shí),何時(shí)塞入當(dāng)前項(xiàng)(前一項(xiàng)),何時(shí)塞入截取的的數(shù)組呢?可以根據(jù)i和j的差值來(lái)判斷,若i-j的差值大于一,則截取原數(shù)組j到i的結(jié)果塞入結(jié)果數(shù)組,代碼如下:

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);

代碼里用到了一個(gè)三元運(yùn)算符,通過(guò)判斷i與j的差值來(lái)判斷向數(shù)組中塞入何值。

感謝各位的閱讀,以上就是“js數(shù)組連續(xù)篩選處理方法是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)js數(shù)組連續(xù)篩選處理方法是什么這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


網(wǎng)站標(biāo)題:js數(shù)組連續(xù)篩選處理方法是什么
分享路徑:http://weahome.cn/article/gsspge.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部