Poistaa Kohteita JavaScript-Taulukot

JavaScript-taulukoiden avulla voit ryhmitellä arvot ja kerrata niitä. Voit lisätä ja poistaa array elementtejä eri tavoin. Valitettavasti ei ole yksinkertainen joukko.poista menetelmä.

So, how do you delete an element from a JavaScript array?,

delete-menetelmän sijaan JavaScript-matriisilla on erilaisia tapoja puhdistaa array-arvoja.

Voit poistaa elementtejä loppuun array käyttäen pop, alusta käyttämällä shift tai lähi-käyttämällä splice. JavaScript Array suodatin menetelmä luoda uusi array haluttuja kohteita, kehittyneempi tapa poistaa toivottuja elementtejä.,licitly Poista Array Elementtejä Käyttäen Delete-Operaattorin

  • Poista tai Palauta JavaScript Array
  • Yhteenveto
  • On olemassa erilaisia menetelmiä ja tekniikoita voit poistaa elementtejä JavaScript-taulukot:

    • pop – Poistaa lopusta Array
    • vaihto – Poistaa alusta Array
    • liitos – poistaa tietyn Array indeksi
    • filter – voit programatically poistaa elementtejä Array

    Voit myös oppia joitakin muita tapoja, joilla voit poistaa elementtejä array, joka voi olla niin ilmeistä, kuten LoDash.,

    Poistamalla Elementtejä Lopussa JavaScript Array

    JavaScript Array elementtejä voidaan poistaa loppuun array asettamalla pituus omaisuuden arvo on pienempi kuin käypä arvo. Kaikki osatekijät, joiden indeksi on suurempi tai yhtä suuri kuin uusi pituus poistetaan.

     var ar = ; ar.length = 4; // set length to remove elements console.log( ar ); // 

    pop menetelmä poistaa viimeinen elementti array, palauttaa, että elementti, ja päivitykset pituus omaisuutta. Pop-menetelmä muuttaa taulukon, johon se on vedonnut, Tämä tarkoittaa, toisin kuin käyttämällä poista viimeinen elementti on poistettu kokonaan ja array pituus vähentää.,

     var ar = ; ar.pop(); // returns 6 console.log( ar ); // 

    Poistamalla Elementtejä Alusta JavaScript Array

    Miten poistaa ensimmäinen osa JavaScript array?

    shift-menetelmä toimii paljolti pop-menetelmän tapaan, paitsi että se poistaa JavaScript-array: n ensimmäisen elementin viimeisen sijaan.

    muuttujia ei ole, sillä shift-menetelmä poisti vain ensimmäisen array-elementin. Kun elementti poistetaan loput elementit siirretään alas.,

     var ar = ; ar.shift(); // returns "zero" console.log( ar ); // 

    shift-metodi palauttaa elementin, joka on poistettu, päivitykset indeksit jäljellä elementtejä, ja päivitykset pituus omaisuutta. Se muuttaa array, johon se on vedottu.

    Jos elementtejä ei ole tai matriisin pituus on 0, menetelmä palautuu määrittelemättömäksi.

    Array-elementtien poistamiseen JavaScript

    Splice-menetelmällä voidaan lisätä tai poistaa elementtejä matriisista. Ensimmäinen argumentti määrittää paikan, jossa alkaa lisätä tai poistaa elementtejä. Toinen argumentti määrittää poistettavien elementtien määrän., Kolmas ja sitä seuraava argumentti ovat valinnaisia; niissä määritellään ryhmään lisättävät elementit.

    Tässä käytämme liitos tapa poistaa kaksi elementtiä alkaen asennossa kolme (nolla-pohjainen indeksi):

     var arr = ; var removed = arr.splice(2,2); 

    array, joka sisältää irrotetut osat on palautettava viimeistään splice metodia. Näet poistettu array Sisältää ja alkuperäinen array sisältää jäljellä olevat arvot.

    liitosmenetelmällä voidaan myös poistaa joukkoelementtejä.,

     var list = ; list.splice(0, 2); // Starting at index position 0, remove two elements and retains .

    Poistaminen Array Kohteita Arvo Käyttämällä Splice

    Jos tiedät arvo, jonka haluat poistaa array voit käyttää splice metodia. Ensin pitää tunnistaa kohdekohteen indeksi. Sitten käytät indeksiä alkuelementtinä ja poistat vain yhden elementin.

     var arr = ; for( var i = 0; i < arr.length; i++){ if ( arr === 5) { arr.splice(i, 1); } } //=> 

    Tämä on yksinkertainen esimerkki, jossa elementit ovat kokonaislukuja. Jos sinulla on joukko esineitä, tarvitset kehittyneempää rutiinia.

    Tämä toimii, jos haluat poistaa vain yhden kohteen., Jos haluat poistaa useita kohteita, jotka vastaavat kriteerejäsi, on häiriö.

    Kun kohteita poistetaan array indeksi on edelleen välein ja seuraava kohde sen jälkeen, kun hyväksytty arvo ohitetaan.

    yksinkertainen ratkaisu on muuttaa edellä esimerkiksi dekrementoidaan indeksi-muuttujan, joten se ei ohita seuraava kohteen array.

     var arr = ; for( var i = 0; i < arr.length; i++){ if ( arr === 5) { arr.splice(i, 1); i--; } } //=> 

    muutettu esimerkki lisätty 2 lisää 5 arvot array. Lisäsin myös ”minä–;” liitoskutsun jälkeen.

    nyt, kun suoritat silmukan, se poistaa jokaisen vastaavan kohteen.,

    Kiitos Kristian Slettenille siitä, että hän huomautti asiasta, kun silmukka ohittaa seuraavan kohdan.

    Matriisisisisuodatusmenetelmällä poistetaan kohteita arvon

    mukaan, toisin kuin liitosmenetelmällä, suodatin luo uuden matriisin. suodatin () ei muuta matriisia, johon sitä kutsutaan, vaan palauttaa uuden matriisin.

    suodatin() on yksi parametri, takaisinkutsumenetelmä. Takaisinkutsu käynnistyy, kun suodatusmenetelmällä iteroidaan array-elementtien läpi. Se on läpäistävä kolme-arvot soittopyyntö: nykyinen arvo tai elementti, nykyinen array indeksi ja täysi valikoima.,

    takaisinkutsumenetelmän pitäisi palata joko oikeaksi tai vääräksi. On sinun vastuullasi testata arvoa (elementtiä) nähdäksesi, täyttääkö se kriteerisi. Jos niin käy, voit palata tosissasi. Todeksi palautuvat elementit lisätään uuteen, suodatettuun matriisiin.

     var array = ; var filtered = array.filter(function(value, index, arr){ return value > 5; }); //filtered => //array => 

    kannattaa huomioida Uusi vastaavuusarvoja sisältävä array palautetaan. Alkuperäinen array on jätetty koskemattomaksi. Pidän tätä hyödyllisenä, koska haluan usein säilyttää alkuperäisen tietolähteen, mutta hakea osajoukkoja eri logiikkasarjojen perusteella.,

    Lodash Array Remove Method

    joskus hyödyllisyyskirjastot ovat paras tapa ratkaista monimutkaisempia ongelmia. Lodash tarjoaa runsaasti erilaisia manipulointimenetelmiä, joista yksi on poistaa.

    Lodash remove-menetelmä toimii paljon kuten array filter-menetelmä, mutta tavallaan päinvastoin. Se ei tallenna alkuperäisiä matriisiarvoja, vaan poistaa vastaavat elementit. Se palauttaa vastaavat elementit uutena ryhmänä.

    var array = ;var evens = _.remove(array, function(n) { return n % 2 === 0;});console.log(array);// => console.log(evens);// => 

    mikä Poistaa Menetelmä

    Kuten olen mentionmed ennen, ei ole syntyperäinen Array.poista menetelmä., Lodash lodash-menetelmä ratkaisee tämän ongelman, mutta et välttämättä aina halua käyttää Lodashia. Tämä ei tarkoita, että et voi luoda apuohjelma menetelmä. John Resig antoi meille mallin, jota seurata, mutta hän laajensi Array prototyyppiä, mikä on huono idea.

    sen sijaan loin Array remove utility-menetelmän, joka voidaan lisätä auttaja-tai hyötykirjastoon. Kuten Lodash poista menetelmä ensimmäinen parametri on kohderyhmä. Se käyttää Array.suodatin palauttaa elementtejä, jotka eivät vastaa arvoa.

    tämä menetelmä on yksinkertainen, se olettaa yksinkertaisia arvoja, kuten numeroita tai merkkijonoja., Voit muokata tätä menetelmää käyttää customcomparison-menetelmää, mutta mielestäni olisi helpompaa vain käyttää suodatusmenetelmää suoraan.

    Nimenomaisesti Poista Array Elementtejä Käyttäen Delete-Operaattorin

    Voit poistaa tiettyjä array elementtejä käyttäen delete-toimija:

     var ar = ; delete ar; // delete element with index 4 console.log( ar ); // alert( ar ); // 1,2,3,4,,6

    Käyttämällä delete-operaattori ei vaikuta pituus omaisuutta. Se ei myöskään vaikuta myöhempien alkuaineiden indekseihin. Array tulee harva, mikä on hieno tapa sanoa poistettua kohdetta ei poisteta, mutta tulee määrittelemätön. Vertaa delete-menetelmää alla kuvattuun splice-menetelmään.,

    delete operator on suunniteltu poistamaan JavaScript-objektien ominaisuuksia, jotka matriisit ovat objekteja.

    syy siihen, että elementtiä ei varsinaisesti poisteta matriisista on se, että delete operator on enemmän muistin vapauttamista kuin elementin poistamista. Muisti vapautuu kun ei ole enää viittauksia arvo.

    Poista tai Palauta JavaScript Array

    Mitä jos haluat tyhjentää koko array ja vain dumpata kaikki sen elementit?

    on olemassa pari tekniikkaa, joilla voit luoda tyhjän tai uuden array.,

    yksinkertaisin ja nopein tekniikka on asettaa array-muuttuja tyhjä joukko:

    var ar = ;//do stuffar = ;//a new, empty array!

    ongelma tämä voi aiheuttaa on, kun on viittauksia muuttuja. Viittaukset tähän muuttujaan eivät muutu, ne pitävät silti alkuperäisen matriisin arvot. Tämä tietenkin voi luoda bugi🐛.

    Tämä on yli yksinkertaistettu esimerkki skenaario:

    var arr1 = ;var arr2 = arr1; // Reference arr1 by another variable arr1 = ; console.log(arr2); // Output 

    yksinkertainen temppu poista array on asettaa sen pituus kiinteistön 0.,

    var ar = ;console.log(ar); // Output ar.length = 0;console.log(ar); // Output 

    Toinen, tavallaan luonnoton tekniikka, on käyttää liitos menetelmä, kulkee array pituus 2 parametri. Tämä palauttaa kopion alkuperäiset elementit, joka voi olla kätevä skenaario.

    var ar = ;console.log(ar); // Output ar.splice(0, ar.length);console.log(ar); // Output 

    kaksi viimeistä tekniikkaa eivät luo uutta matriisia, vaan muuttavat matriisin elementtejä. Tämä tarkoittaa, että viittaukset olisi myös päivitettävä.

    on toinen tapa, käyttäen while Loopia. Se tuntuu minusta hieman oudolta, mutta näyttää samalla hienolta, joten se voi tehdä vaikutuksen joihinkin ystäviin!,

    var ar = ;console.log(ar); // Output while (ar.length) { ar.pop(); }console.log(ar); // Output 

    Ole tapa haluan selvitys JavaScript array, mutta se toimii ja se on luettavissa. Jotkut suoritustestit ovat myös osoittaneet tämän olevan nopein tekniikka, joten ehkä se on parempi kuin alun perin luulin!

    Yhteenveto

    JavaScript-Array-kohteiden poistaminen on tärkeää tietojesi hallinnan kannalta. Ei ole olemassa yhtä ”poista” – menetelmää, mutta on olemassa erilaisia menetelmiä ja tekniikoita, joilla voit puhdistaa ei-toivottuja array kohteita.

    tässä artikkelissa on tarkasteltu näitä menetelmiä ja sitä, miten niitä voidaan käyttää., Näit myös, miten luoda auttaja menetelmä, joka tekee poistaminen kohteita array hieman helpompaa ja johdonmukaista.

    Kiitos Rob Sherwoodille joidenkin syntaktisten kirjoitusvirheiden osoittamisesta!