JS中物件的迴圈刪除問題

2021-08-17 18:23:08 字數 825 閱讀 7244

var eles=document.getelementsbyname("subcheck");

for(var =1,ivar ele=eles[i];

$(ele).remove();

}針對以上**,若eles的長度為4的話,實際情況只能刪掉2個。這是因為js在刪掉乙個元素的同時,將eles集合中的元素同時刪掉。也就是說被迴圈的集合是動態的。

比如,原eles[a,b,c,d]

第一次迴圈前   eles=[a,b,c,d]   i=0;  獲得 ele=a,刪除掉a 

第二次迴圈前   eles=[b,c,d]          i=1; 獲得 ele=c ,刪除掉c

第三次迴圈前   eles=[b,d] i=2;這時i的值已經大於eles集合的長度,不再進入迴圈。

最後的結果就是只刪除掉了部分元素。

正確的**為:

var eles=document.getelementsbyname("subcheck");

for(var =eles.length-1,i>=0;i--)

針對以上**,比如,原eles[a,b,c,d]

執行過程為:

第一次迴圈前   eles=[a,b,c,d]   i=3;  獲得 ele=d,刪除掉d 

第二次迴圈前   eles=[a,b,c]          i=2; 獲得 ele=c ,刪除掉c

第三次迴圈前   eles=[a,b] i=1; 獲得 ele=b, 刪除掉b 

第三次迴圈前   eles=[a] i=0; 獲得 ele=a, 刪除掉a 

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

最後的結果是全部刪除。

js中,清空物件(刪除物件的屬性)

在專案中,有些物件用完後需要重置,下面簡單介紹下js中清除物件的方法。方法如下 方法一 字面量定義物件 第一步,定義乙個空物件並列印出來,和效果 var student console.log student 列印結果 第二步,為物件新增屬性並列印,和列印結果如下 student.name xiao...

JS中for迴圈優化問題

引 每個接觸js的開發人員都不可避免的與for迴圈打交道,畢竟這是遍歷必不可少的工具之一。然而當迴圈次數比較大時,效率問題必須重視。在群眾,站長提出了這個話題,回去好好想了下,整理出來,大家一起討論討論。1.倒序比正序效率高?聽好多人說,倒序效率更高,好吧,做個實驗,讓事實說話 測試 複製 測試結果...

js中關於setTimeOut()迴圈的問題

function stop function checktime i return i function fun2 week function starttime starttime 上面 執行起來是沒錯 若是這樣呢 while true 今天同學問到了這個為啥不能用迴圈呢,我給的解釋就是用迴圈沒有...