日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数组的坍塌

發(fā)布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数组的坍塌 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

1.什么是數(shù)組的塌陷

2.數(shù)組的塌陷造成的影響

3.消除數(shù)組塌陷造成的影響


1.什么是數(shù)組的塌陷

? ? ? ?數(shù)組在執(zhí)行刪除操作時,刪除數(shù)組單元之后,后面的數(shù)組單元會向前移動,出現(xiàn)在刪除單元的位置上,造成數(shù)組長度減少的現(xiàn)象,就是數(shù)組的塌陷。

2.數(shù)組的塌陷造成的影響

? ? ? ?只要數(shù)組執(zhí)行刪除操作,立即就會觸發(fā)數(shù)組的塌陷,數(shù)組塌陷不能阻止,我們只能消除數(shù)組塌陷造成的影響。

我們先用 正常思路 進行 數(shù)組去重

var arr = [1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6];//先給數(shù)組排序 arr.sort(function (min, max) { return min - max }); console.log(arr);//然后循環(huán)遍歷數(shù)組// 當(dāng)前的單元 和 下一個單元 進行數(shù)據(jù)的比較判斷 // 最后一個單元 沒有 下一個單元進行比較判斷 // 所以循環(huán)到 倒數(shù)第二個單元 就可以了 // 也就是 循環(huán)至 倒數(shù)第二個單元的索引下標就可以了 for (var i = 0; i < arr.length - 1; i++) {//判斷兩個單元的數(shù)值是否相等// arr[i] 是 當(dāng)前索引下標對應(yīng)的單元// arr[i+1] 是 下一個索引下標對應(yīng)的單元if (arr[i] === arr[i + 1]) {// 如果 兩個單元 存儲的數(shù)據(jù)相同 刪除 后一個單元的數(shù)據(jù)arr.splice(i + 1, 1);} } console.log(arr);

執(zhí)行數(shù)組排序的結(jié)果:

循環(huán)遍歷數(shù)組,進行判斷刪除操作后的結(jié)果:

?那么我們就可以看出,循環(huán)遍歷數(shù)組,進行判斷刪除操作后,它是刪除了一部分重復(fù)的數(shù)據(jù),但是呢,它沒能徹底完成去重,這就是數(shù)組塌陷造成的影響。

3.消除數(shù)組塌陷造成的影響

既然數(shù)組塌陷造成了影響,那么肯定就會使我們的程序不能正常執(zhí)行它的功能,這時候,我們就必須要消除數(shù)組坍塌造成的影響。

我們其實只需要進行一個簡單的操作,那就是,在if判斷里面,進行刪除操作后面添加一個i--,就可以消除數(shù)組坍塌造成的影響。

var arr = [1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6];arr.sort(function (min, max) { return min - max }); //console.log(arr);for (var i = 0; i < arr.length - 1; i++) {if (arr[i] === arr[i + 1]) {arr.splice(i + 1, 1);//消除數(shù)組坍塌造成的影響i--; } } console.log(arr);

執(zhí)行結(jié)果:

總結(jié)

以上是生活随笔為你收集整理的数组的坍塌的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。