亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

班玛县| 枣庄市| 陆良县| 满洲里市| 七台河市| 阿图什市| 炉霍县| 祁东县| 普兰店市| 桂东县| 双鸭山市| 屏山县| 承德市| 长汀县| 庆阳市| 都安| 汾西县| 涟水县| 东宁县| 那曲县| 镇安县| 平定县| 台东县| 象山县| 昌黎县| 嘉义县| 花垣县| 肇东市| 吉木乃县| 八宿县| 阳山县| 大田县| 宁国市| 乌鲁木齐市| 安达市| 博乐市| 肥城市| 白城市| 会东县| 车险| 长汀县|