溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Js之怎么移除Array數(shù)組中指定元素

發(fā)布時間:2023-03-06 11:43:59 來源:億速云 閱讀:159 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Js之怎么移除Array數(shù)組中指定元素”,在日常操作中,相信很多人在Js之怎么移除Array數(shù)組中指定元素問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Js之怎么移除Array數(shù)組中指定元素”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

    Js 移除Array數(shù)組中指定元素

    首先需要找到元素的下標(biāo):

    var array = [0,1,2,3,4,5];
    var index = array.indexOf(5);

    使用splice函數(shù)進(jìn)行移除:

    if (index > -1) {
        array.splice(index, 1);
    }
    • indexOf()方法可返回某個指定的字符串值在字符串中首次出現(xiàn)的位置。

    • splice函數(shù)的第二個參數(shù)指刪除的數(shù)目。

    • splice直接修改原數(shù)組,并把刪除的所有元素以另一個新數(shù)組的方式返回。

    Js 數(shù)組刪除元素 避坑

    length

    JavaScript中Array的length屬性非常有特點(diǎn)一一它不是只讀的。因此,通過設(shè)置這個屬性可以從數(shù)組的末尾移除項或添加新項,請看下面例子:

    var colors = ["red", "blue", "grey"];   //創(chuàng)建一個包含3個字符串的數(shù)組
    colors.length = 2;
    console.log(colors[2]);  //undefined

    delete

    var arr = [1, 2, 3, 4];
    delete arr[0];
    console.log(arr);   //[undefined, 2, 3, 4]

    可以看出來,delete刪除之后數(shù)組長度不變,只是被刪除元素被置為undefined了。

    棧方法

    var colors = ["red", "blue", "grey"];
    var item = colors.pop();
    console.log(item);      //"grey"
    console.log(colors.length);    //2

    在調(diào)用Pop方法時,數(shù)組返回最后一項,即”grey”,數(shù)組的元素也僅剩兩項。

    隊列方法

    var colors = ["red", "blue", "grey"];
    var item = colors.shift();
    console.log(item);      //"red"
    console.log(colors.length);    //2

    隊列數(shù)據(jù)結(jié)構(gòu)的訪問規(guī)則是FIFO(先進(jìn)先出),隊列在列表的末端添加項,從列表的前端移除項,使用shift方法,它能夠移除數(shù)組中的第一個項并返回該項,并且數(shù)組的長度減1。

    操作方法

    var colors = ["red", "blue", "grey"];
    var item = colors.splice(0, 1);
    console.log(item);      //"red"
    console.log(colors);    //["blue", "grey"]

    迭代方法

    所謂的迭代方法就是用循環(huán)迭代數(shù)組元素發(fā)現(xiàn)符合要刪除的項則刪除,用的最多的地方可能是數(shù)組中的元素為對象的時候,根據(jù)對象的屬性例如ID等等來刪除數(shù)組元素。

    • forEach

    var colors = ["red", "blue", "grey"];
    colors.forEach(function(item, index, arr) {
        if(item == "red") {
            arr.splice(index, 1);
        }
    });
    • filter

    var colors = ["red", "blue", "grey"];
    colors = colors.filter(function(item) {
        return item != "red"
    });
    console.log(colors);    //["blue", "grey"]

    原型方法

    Array.prototype.remove = function(dx) {
        if(isNaN(dx) || dx > this.length){
            return false;
        }
        for(var i = 0,n = 0;i < this.length; i++) {
            if(this[i] != this[dx]) {
                this[n++] = this[i];
            }
        }
        this.length -= 1;
    };
    var colors = ["red", "blue", "grey"];
    colors.remove(1);
    console.log(colors);    //["red", "grey"]

    在此把刪除方法添加給了Array的原型對象,則在此環(huán)境中的所有Array對象都可以使用該方法。

    盡管可以這么做,但是我們不推薦在產(chǎn)品化的程序中來修改原生對象的原型。道理很簡單,如果因某個實(shí)現(xiàn)中缺少某個方法,就在原生對象的原型中添加這個方法,那么當(dāng)在另一個支持該方法的實(shí)現(xiàn)中運(yùn)行代碼時,就可能導(dǎo)致命名沖突。而且這樣做可能會意外的導(dǎo)致重寫原生方法。

    到此,關(guān)于“Js之怎么移除Array數(shù)組中指定元素”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI