欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2007年03月08日 00:00:00   作者:  
我們知道JScript給我們提供了一個內(nèi)置的數(shù)組對象Array。Array對象除了提供了constructor、length和prototype外,還默認提供了13個方法:concat、join、pop、push、reverse、shift、slice、sort、splice、toLocaleString、toString 、unshift和valueOf,可是沒有提供delete方法。

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

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

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

    但是pop和shift只能從數(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;
        }
    }
};
    移動整理數(shù)組的目的只是為了刪除元素后不改變剩余元素的彼此相對位置,否則只用把需要刪除的元素swap到兩端pop或shift以下就可以了。

相關文章

  • 微信小程序3種位置API的使用方法詳解

    微信小程序3種位置API的使用方法詳解

    這篇文章主要介紹了微信小程序3種位置API的使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Three.js使用OrbitControls后修改相機旋轉(zhuǎn)方向無效解決辦法

    Three.js使用OrbitControls后修改相機旋轉(zhuǎn)方向無效解決辦法

    three.js是用javascript寫的基于webGL的第三方3D庫,下面這篇文章主要給大家介紹了關于Three.js使用OrbitControls后修改相機旋轉(zhuǎn)方向無效的解決辦法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • 微信小程序?qū)崿F(xiàn)星星評價效果

    微信小程序?qū)崿F(xiàn)星星評價效果

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)星星評價效果,支持多個條目評價,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 面向JavaScript入門初學者的二叉搜索樹算法教程

    面向JavaScript入門初學者的二叉搜索樹算法教程

    二叉搜索樹則是二叉樹的一種,但它只允許你在左側(cè)節(jié)點儲存比父節(jié)點小的值,右側(cè)只允許儲存比父節(jié)點大的值,這篇文章主要給大家介紹了關于JavaScript二叉搜索樹算法的相關資料,需要的朋友可以參考下
    2021-09-09
  • web 前端常用組件之Layer彈出層組件

    web 前端常用組件之Layer彈出層組件

    這篇文章主要介紹了web 前端常用組件之Layer彈出層組件的相關資料,本文通過實例代碼詳解給大家介紹的非常詳細,感興趣的朋友可以參考下
    2016-09-09
  • JavaScript中的純函數(shù)與偏函數(shù)你了解嗎

    JavaScript中的純函數(shù)與偏函數(shù)你了解嗎

    JS中,純函數(shù)指在相同的輸入下始終產(chǎn)生相同的輸出并且沒有副作用的函數(shù),偏函數(shù)指一種創(chuàng)建新函數(shù)的方法,通過預設一個或多個參數(shù)從而實現(xiàn)對原始函數(shù)的封裝和定制,本文主要來講講純函數(shù)與偏函數(shù)的一些使用,需要的可以參考一下
    2023-05-05
  • electron 如何將任意資源打包的方法步驟

    electron 如何將任意資源打包的方法步驟

    這篇文章主要介紹了electron 如何將任意資源打包的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • bootstrap datepicker限定可選時間范圍實現(xiàn)方法

    bootstrap datepicker限定可選時間范圍實現(xiàn)方法

    這篇文章主要介紹了bootstrap datepicker限定可選時間范圍的實現(xiàn)方法,本文涉及到相關知識點,通過實例給大家介紹的非常詳細,需要的朋友可以參考下
    2016-09-09
  • 淺析JS中的原型,原型鏈和繼承

    淺析JS中的原型,原型鏈和繼承

    經(jīng)典模式和圣杯模式都是用于解決構(gòu)造函數(shù)繼承和原型繼承的問題,但它們在實現(xiàn)繼承的方式上有所不同,本文主要來和大家聊聊經(jīng)典模式和圣杯模式下原型,原型鏈和繼承的實現(xiàn),需要的可以參考下
    2023-09-09
  • JS實現(xiàn)圖片高亮展示效果實例

    JS實現(xiàn)圖片高亮展示效果實例

    這篇文章主要介紹了JS實現(xiàn)圖片高亮展示效果的方法,實例分析了JavaScript響應鼠標事件動態(tài)操作頁面元素樣式的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11

最新評論