天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

JScript內置對象Array中元素的刪除方法

我們知道JScript給我們提供了一個內置的數組對象Array。Array對象除了提供了constructor、length和prototype外,還默認提供了13個方法:concat、join、pop、push、reverse、shift、slice、sort、splice、toLocaleString、toString 、unshift和valueOf,可是沒有提供delete方法。

    要是熟悉JavaScript的話,會馬上說,系統提供了一個delete操作,可以用來刪除數組中的元素。對,JS系統里確實有一個delete可以刪除數組中的元素。可是這個刪除很難用,它確實可以刪除元素,可是它卻不更新Array對象的元素計數器。例如我們執行:

var ary = ['a', 'b', 'c'];
delete ary[1];
    如果正確的執行刪除后,我們希望會得到一個新的數組,他有兩個元素['a', 'c'],長度為2。可是執行完后我們確實是得到了兩個元素['a', 'c']的數組,可是這個新數組的長度ary.length居然還是3!。同時我們執行ary.toString()將得到"a,,c",這也表明數組的計數器還是3,因為Array的toString()實際上執行的是Array.join(',')。

    這樣的刪除在我們使用for( ; ; )遍歷數組的時候,將會非常的郁悶,我們可能很容易就可能被一個undefined的值搞死掉了。那么怎么才能獲得刪除數組元素后同步數組的大小呢?由于Array本身提供的pop和shift兩個函數可以"真正的"刪除數組的元素,所以我們可以使用它們來自己擴充一個remove函數。

    但是pop和shift只能從數組的兩端刪掉元素,所以我們在刪除之前需要對數組做一些整理,實現remove方法的代碼如下:

Array.prototype.remove = function(obj)
{
    for ( var i=0 ; i < this.length ; ++i )
    {
        if ( this[i] == obj )
        {
            if ( i > this.length/2 )
            {
                for ( var j=i ; j < this.length-1 ; ++j )
                {
                    this[j] = this[j+1];
                }
                this.pop();
            }
            else
            {
                for ( var j=i ; j > 0 ; --j )
                {
                    this[j] = this[j-1];
                }
                this.shift();
            }    
            break;
        }
    }
};
    移動整理數組的目的只是為了刪除元素后不改變剩余元素的彼此相對位置,否則只用把需要刪除的元素swap到兩端pop或shift以下就可以了。

JavaScript技術JScript內置對象Array中元素的刪除方法,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产GV无码A片在线观看 | 国产成人精品久久久久婷婷 | 成人精品视频在线观看 | 亚洲中文字幕乱码熟女在线 | 猪蜜蜜网站在线观看电视剧 | 美艳人妻在厨房翘着屁股 | 色拍拍噜噜噜久久蜜桃 | 久爱在线中文在观看 | 漂亮美女2018完整版 | 国产成人拍精品免费视频爱情岛 | 久久视热频国只有精品 | 在线高清视频不卡无码 | 久久久国产精品免费A片3D | 亚洲午夜精品一区二区公牛电影院 | 婷婷综合久久狠狠色 | 大地影院免费观看视频 | 动漫美女被到爽了流 | 午夜一个人在线观看完整版 | 蜜柚在线观看免费高清官网视频 | 国产精品视频第一区二区三区 | 精品午夜国产福利观看 | 中文无码字慕在线观看 | 彭丹吃奶门 | 日韩欧美一区二区三区在线视频 | 国产偷国产偷亚洲高清SWAG | 精品无码一区二区三区中文字幕 | 99久久免热在线观看6 | 快播h动漫网 | h片下载地址 | 洗濯屋H纯肉动漫在线观看 羲义嫁密着中出交尾gvg794 | 国产亚洲精品黑人粗大精选 | 欧美日韩中文在线字幕视频 | 麻豆精品国产剧情观看 | 国产精品视频第一区二区三区 | caoporn 超碰在线视频 | 久久午夜夜伦鲁鲁片无码免费 | 二级特黄绝大片免费视频大片 | 久久精品免视看国产 | 亚洲春色AV无码专区456 | 亚洲综合免费视频 | 欧美一区二区三区播放 |