中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js數組連續篩選處理方法是什么

發布時間:2022-01-05 16:16:06 來源:億速云 閱讀:186 作者:iii 欄目:大數據

這篇文章主要講解了“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數組連續篩選處理方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js
AI

太和县| SHOW| 平江县| 广安市| 门源| 宜宾县| 克山县| 文成县| 行唐县| 焉耆| 赤水市| 洞口县| 厦门市| 敖汉旗| 康乐县| 鸡东县| 高陵县| 恩施市| 靖宇县| 谢通门县| 荃湾区| 潮州市| 滦平县| 鹤壁市| 天柱县| 静海县| 漠河县| 荆门市| 华亭县| 望都县| 卢龙县| 屯留县| 肃北| 青田县| 贵港市| 钟山县| 北海市| 江川县| 石台县| 庆城县| 彭山县|