国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

JavaScript中關(guān)于for循環(huán)刪除數(shù)組元素內(nèi)容時(shí)出現(xiàn)的問(wèn)題

2019-11-19 18:54:48
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

昨天用for循環(huán)進(jìn)行數(shù)組去重的時(shí)候出現(xiàn)的問(wèn)題,

首先,用雙重for循環(huán)把前一個(gè)和所有后面的元素進(jìn)行比較,如果相等則刪除。

但是,如果數(shù)組里面有三個(gè)以上連續(xù)相等的元素的時(shí)候,就會(huì)出現(xiàn)問(wèn)題。 

var arr = [1,1,1,2,2];for(var i=0; i<arr.length-1; i++){for(var j=i+1; j<arr.length; j++){if(arr[i] === arr[j]){arr.splice(j,1);}}} document.write("arr:"+arr);

輸出:

這是因?yàn)楫?dāng)數(shù)組刪除一個(gè)元素的時(shí)候,數(shù)組長(zhǎng)度減1,后面點(diǎn)元素就會(huì)往前移動(dòng)一位,索引也減1,但是j還是進(jìn)行了j++的操作。

即第一次進(jìn)行刪除是,i=0 j=1,刪除以后arr=[1,1,2,2],然后j=2,就會(huì)忽略掉刪除以后j=1的元素繼續(xù)往后遍歷。

因此在每次進(jìn)行了刪除的情況下,要對(duì)j進(jìn)行減1

var arr = [1,1,1,2,2];for(var i=0; i<arr.length-1; i++){for(var j=i+1; j<arr.length; j++){if(arr[i] == arr[j]){arr.splice(j--,1);}}}document.write("arr:"+arr);

輸出:

類似關(guān)于對(duì)數(shù)組元素進(jìn)行刪除的,都要考慮數(shù)組長(zhǎng)度會(huì)減1,后面的元素都會(huì)往前移動(dòng)一位

以上所述是小編給大家介紹的JavaScript中關(guān)于for循環(huán)刪除數(shù)組元素內(nèi)容時(shí)出現(xiàn)的問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 神木县| 伊宁市| 锡林浩特市| 新干县| 杭锦旗| 沂水县| 道孚县| 南投县| 临海市| 冀州市| 开鲁县| 保康县| 商丘市| 类乌齐县| 磐石市| 宕昌县| 河源市| 涞源县| 图木舒克市| 佛山市| 丘北县| 云龙县| 潼关县| 长武县| 闵行区| 拉萨市| 内乡县| 大宁县| 肥乡县| 永仁县| 余姚市| 新绛县| 通河县| 台前县| 宜昌市| 汾阳市| 仙居县| 西和县| 崇阳县| 宁陵县| 鸡西市|