最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2016年11月21日 09:12:23   作者:LiuDongpei  
昨天在用for循環(huán)進(jìn)行數(shù)組去重的時(shí)候出現(xiàn)的問題小結(jié),怎么解決這個(gè)問題呢,今天小編通過本文給大家講解下js循環(huán)刪除數(shù)組元素的方法,一起看看吧

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

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

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

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)的問題,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論

英山县| 曲麻莱县| 洛浦县| 攀枝花市| 溧水县| 恩平市| 麟游县| 安新县| 同心县| 赫章县| 休宁县| 宁德市| 天台县| 安国市| 曲靖市| 田林县| 康平县| 会东县| 上虞市| 德阳市| 乐业县| 上饶市| 香港| 名山县| 遂平县| 鸡西市| 井陉县| 琼海市| 应用必备| 咸宁市| 邵东县| 柘城县| 井研县| 云南省| 吉林市| 梁山县| 建始县| 荥阳市| 肥西县| 伽师县| 略阳县|