js 数组的塌陷
目錄
1.什么是數組的塌陷?
2.數組的塌陷造成的后果?
3.清除塌陷造成的影響!
1.什么是數組的塌陷?
? ? 數組在執行刪除操作時,刪除數組單元之后,后面的數組單元會向前移動,出現在刪除單元的位置上,造成數組長度減少的現象,就是數組的塌陷。
2.數組的塌陷造成的后果?
? ? 只要數組執行刪除操作,立即就會觸發數組的塌陷,數組塌陷不會阻止,我們只能消除數組塌陷造成的影響。
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++) {//判斷兩個單元的數值是否相等// arr[i] 是 當前索引下標對應的單元// arr[i+1] 是 下一個索引下標對應的單元if (arr[i] === arr[i + 1]) {// 如果 兩個單元 存儲的數據相同 刪除 后一個單元的數據arr.splice(i + 1, 1);} } console.log(arr);數組的執行的結果:
?循環遍歷數組,進行判斷刪除操作后的結果
??那么我們就可以看出,循環遍歷數組,進行判斷刪除操作后,它是刪除了一部分重復的數據,但是呢,它沒能徹底完成去重,這就是數組塌陷造成的影響。
3.清除塌陷造成的影響!
? ? ?
? ? 既然數組塌陷造成了影響,那么肯定就會使我們的程序不能正常執行它的功能,這時候,我們就必須要消除數組坍塌造成的影響。
? ? 我們其實只需要進行一個簡單的操作,那就是,在if判斷里面,進行刪除操作后面添加一個i--,就可以消除數組坍塌造成的影響。
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);//消除數組坍塌造成的影響i--; } } console.log(arr);執行結果:
?
總結
- 上一篇: python爬取收费漫画_python爬
- 下一篇: 负重前行的婚纱线上路 - i天下网商-最