1 回答

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊
又++ 又-- 死循環(huán)了唄,
如果不判斷 arr[i]!=undefined 空數(shù)組的時(shí)候就會(huì)死循環(huán),
比如測(cè)試用例:
[1,1,1,1];
真逗, 請(qǐng)問(wèn)是哪位踩得我, 哪句說(shuō)的不對(duì)?
題主問(wèn)的服務(wù)器卡死是為什么? 除了我有一個(gè)人說(shuō)的是為什么卡死嗎?
既然這么不開(kāi)竅,
我再解釋一下為什么會(huì)死循環(huán)~
還是拿測(cè)試用例[1,1,1,1];
第一次循環(huán)對(duì)應(yīng)數(shù)組index為0 value為1
第一次進(jìn)來(lái)obj肯定為空, 緩存一個(gè){1: 1};
第二次循環(huán)數(shù)組index為1 value為1;
判斷出有一個(gè)value為 1(obj : {1: 1});
則對(duì)數(shù)組刪除index為1的數(shù)據(jù).
同時(shí)對(duì)i--, 當(dāng)進(jìn)入下一次循環(huán)的時(shí)候i又++, 所以可以理解到下次循環(huán)i不變,i為1
第三次循環(huán)同理,i為1
第四次進(jìn)入循環(huán)時(shí)i為1,
但是arr的長(zhǎng)度為1,則 arr[1]為undefined,
但是沒(méi)有判斷是否為undefined,
直接判斷obj[undefined]因?yàn)椴淮嬖谥苯犹龅?br/>obj[temp]=1;此時(shí)temp為undefined
即為把obj聲明一個(gè)屬性為undefined值為1Object {1: 1, undefined: 1}
第五次循環(huán)
i為2
同樣數(shù)組中只有一個(gè)值所以arr[i]還是undefined;
但是obj[undefined]為1,
所以再去刪除數(shù)組, (當(dāng)前數(shù)組為空);
同時(shí)i--;
直到正無(wú)窮~
添加回答
舉報(bào)