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

JScript內(nèi)置對(duì)象Array中元素的刪除方法

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

    要是熟悉JavaScript的話,會(huì)馬上說(shuō),系統(tǒng)提供了一個(gè)delete操作,可以用來(lái)刪除數(shù)組中的元素。對(duì),JS系統(tǒng)里確實(shí)有一個(gè)delete可以刪除數(shù)組中的元素。可是這個(gè)刪除很難用,它確實(shí)可以刪除元素,可是它卻不更新Array對(duì)象的元素計(jì)數(shù)器。例如我們執(zhí)行:

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

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

    但是pop和shift只能從數(shù)組的兩端刪掉元素,所以我們?cè)趧h除之前需要對(duì)數(shù)組做一些整理,實(shí)現(xiàn)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;
        }
    }
};
    移動(dòng)整理數(shù)組的目的只是為了刪除元素后不改變剩余元素的彼此相對(duì)位置,否則只用把需要?jiǎng)h除的元素swap到兩端pop或shift以下就可以了。

JavaScript技術(shù)JScript內(nèi)置對(duì)象Array中元素的刪除方法,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 伊人影院蕉久 | 国内精自品线一区91 | 精品国产午夜福利在线观看蜜月 | 久久久午夜精品福利内容 | 成年黄网站免费大全毛片 | 青青青青久久久久国产的 | 一区二区视频在线观看高清视频在线 | 小黄飞二人转 | 免费人成视频19674不收费 | 青青久| 亚洲成人三级 | 日本久久精品视频 | 成人在线高清不卡免费视频 | 中文字幕精品视频在线 | 亚洲1区2区3区精华液 | 久久综合给合久久狠狠狠… | 国产女合集小岁9三部 | 青青草原国产在线 | 亚洲精品综合在线影院 | 成人在线不卡视频 | 91综合久久久久婷婷 | 99视频偷窥在线精品国自产拍 | 翘臀少妇被扒开屁股日出水爆乳 | 国产精品久久一区二区三区蜜桃 | 两个吃奶一个添下面视频 | ai换脸在线全集观看 | 99免费视频观看 | 亚洲欧洲日产国码中学 | 嫩草影院一区 | 青青草在现线免费观看 | 国产精品久久久久影院免费 | 亚洲黄网站wwwwww | 国产一卡 二卡三卡四卡无卡乱码视频 | 影音先锋av丝袜天堂 | 美女网站免费久久久久久久 | 午夜在线视频国产极品片 | 99热在线精品视频 | 打扑克床上视频不用下载免费观看 | 亚洲国产在线2020最新 | 久久伊人精品青青草原2021 | 亚洲刺激视频 |