陣列的坍塌及解決方法

2021-10-03 11:37:02 字數 1338 閱讀 1653

概念:

陣列的坍塌可以理解為當你把陣列前面的索引位置的那乙個資料擷取以後, 從這個索引開始,後面的每乙個資料索引都會向前坍塌乙個,這個就是陣列塌陷。

例項

var arr =[1

,2,3

,4];

for(

var i =

0; i < arr.length; i++

)

**的執行順序:

當i===0時,arr.splice(0,1) =>[2,3,4];

當 i === 1時, arr.splice(1,1) =>[2, 4];

當 i === 2時,結束迴圈。

解決方法:

1.

var arr =[1

,2,3

,4];

for(

var i = arr.length -

1; i >=

0; i--

)

**的執行順序:

i === 3

arr.splice(3, 1) => arr === [1, 2, 3]

i === 2

arr.splice(2, 1) => arr === [1, 2]

i === 1

arr.splice(1, 1) => arr === [1]

i === 0

arr.splice(0, 1) => arr ===

i === -1, 結束迴圈。

解決方法

2.

var arr =[1

,2,3

,4];

for(

var i =

0; i < arr.length; i++

)

**的執行順序:

i === 0

arr.splice(0, 1) => arr === [2, 3, 4] length === 3 i === -1

i === 0

arr.splice(0, 1) => arr === [3, 4] length === 2 i === -1

i === 0

arr.splice(0, 1) => arr === [4] length === 1 i === -1

i === 0

arr.splice(0, 1) => arr = length === 0 i === -1

i === 0 => 0 < 0 false

結束迴圈。

死鎖及解決方法

死鎖的概念 quad 死鎖 指的是 quad 多個執行緒各自占有一些共享資源,並且互相等待其他執行緒占有的資源才能進行,而導致兩個或者多個執行緒都在等待對方釋放資源,都停止執行的情形。quad 因此,某乙個同步塊需要同時擁有 兩個以上物件的鎖 時,就可能會發生 死鎖 的問題。下面案例中,化妝執行緒 ...

ADO SQL問題及解決方法

1 ado連線sql,開啟資料集時,如果是單條語句的,後跟注釋,則執行時無結果集返回,如果是有分行符則正常 在查詢分析器當然是正常的 原因不詳,如 select from abc memo 無返回 select from abc slinkbreak memo 正常 2 刪除記錄時,出現bof 或 ...

Android ANR異常及解決方法

在android裡,應用程式的響應性是由activity manager和windowmanager系統服務監視的 當它監測到以下情況中的乙個時,android就會針對特定的應用程式顯示anr 潛在的耗時操作,例如網路或資料庫操作,或者高耗時的計算如改變位圖尺寸,應該在子執行緒裡 或者以資料庫操作為...