cum să eliminați un element din matrice în JavaScript?

există șanse foarte mari ca la un moment dat în trecut să fi tastat fraza de mai sus în câmpul de căutare Google sau Stack Overflow. Această problemă este atât de comună încât este cea mai votată întrebare sub eticheta javascript pe stivă. Dacă este atât de popular de ce nu au o privire mai atentă la această problemă?

problema eliminării elementului din matrice pare omniprezentă și, prin urmare, importantă.

în JavaScript există o mulțime de metode în matrice în sine, dar și în alte obiecte standard., Printre aceste metode există destul de multe care ne pot ajuta să rezolvăm problema specificată. Aceasta înseamnă că există de fapt mai multe răspunsuri la întrebarea din titlu. Să trecem în revistă cele mai populare.pentru a face soluțiile mai comparabile, vom caracteriza fiecare dintre ele folosind trei proprietăți:

  • In-place-modifică această metodă matricea originală? Dacă nu, atunci returnează matrice modificată (matrice fără element șters)
  • elimină duplicatele — această metodă elimină toate aparițiile elementului specificat sau numai prima?,
  • după valoare / index — această metodă necesită furnizarea valorii elementului sau a indicelui său în matrice?pentru a simplifica exemplele, vom presupune că toate matricele conțin valori primitive, cum ar fi numerele.în această secțiune vom evalua cele mai comune abordări ale problemei în cazul general. Prin general vreau să spun eliminarea unui element care nu are loc special în matrice. Nu este ultimul, primul sau singurul. Este doar Joe obișnuit printre elementele lui array.

    eliminarea element de valoare folosind .,splice ()

    metoda Splice poate fi folosit pentru a scăpa de un element la index cunoscut. Dacă cunoașteți doar valoarea, mai întâi trebuie să identificați indexul articolului. Apoi utilizați indexul ca element de pornire și eliminați doar un element.

    Ștergere element folosind îmbinare metodă

    Proprietăți de soluție:

    Proprietăți de îmbinare metoda soluție

    Eliminarea element de Matrice folosind .,filter() method

    Specific element can be filtered out from array, by providing filtering function. Such function is then called for every element in array.

    Remove element using filter method

    Properties of the solution:

    Properties of filter method solution

    Removing Array element by extending Array.prototype

    Prototype of Array can be extended with additional methods., Astfel de metode vor fi apoi disponibile pentru a fi utilizate pe matrice create.
    Notă: extinderea prototipuri de obiecte din biblioteca standard de JS (cum ar fi matrice) este considerat de unii ca antipattern.,

    Ștergere element, prin extinderea Matrice prototip

    Proprietăți de soluție:

    Proprietăți de extindere prototip soluție

    Eliminarea element de Matrice folosind operatorul delete

    Folosind operatorul delete nu afectează durata de proprietate. Nici nu afectează indicii elementelor ulterioare. Elementul șters nu este eliminat, dar devine nedefinit., The delete operator is designed to remove properties from JavaScript objects, which arrays are objects.

    Remove element using delete operator

    Properties of the solution:

    Properties of delete operator solution

    Removing Array element using Object utilities (>= ES10)

    ES10 introduced Object.,fromEntries, care pot fi folosite pentru a crea matrice dorit de la orice obiect matrice cum ar fi și filtru elemente nedorite în timpul procesului.

    Ștergere element folosind Obiect.,fromEntries

    Proprietăți de soluție:

    Proprietăți de fromEntries soluție

    cazuri Speciale

    În această secțiune vom evalua trei cazuri speciale, în condițiile în care în matrice specificat element se află: la început, la sfârșitul sau în ambele cazuri, adică este singurul element din matrice.

    eliminarea element dacă este la sfârșitul matrice..

    ..,prin schimbarea lungimii matricei:

    elementele matricei JavaScript pot fi eliminate de la sfârșitul unui tablou prin setarea proprietății lungimii la o valoare mai mică decât valoarea curentă. Orice element al cărui indice este mai mare sau egal cu noua lungime va fi eliminat.

    Elimina trecută prin schimbarea lungimii de proprietate

    Proprietăți de soluție:

    Proprietăți de a schimba lungimea soluție

    ..prin utilizarea .,metoda pop ():

    metoda pop elimină ultimul element al matricei, returnează acel element și actualizează proprietatea length. Metoda pop modifică matricea pe care este invocată, acest lucru înseamnă, spre deosebire de utilizarea șterge ultimul element este eliminat complet și lungimea matrice redusă.,

    Elimina trecută prin utilizarea pop metodă

    Proprietăți de soluție:

    Proprietăți de pop metoda soluție

    Eliminarea elementului dacă e la început de Matrice

    .shift () metoda funcționează la fel ca metoda pop, cu excepția faptului că elimină primul element al unei matrice JavaScript în loc de ultima. Când elementul este îndepărtat, elementele rămase sunt deplasate în jos.,

    Elimine în primul rând de către folosind metoda de schimbare

    Proprietăți de soluție:

    Proprietăți de schimbare metoda soluție

    Eliminarea elementului dacă e singurul element în Matrice

    Cel mai rapid tehnica este de a stabili o serie variabilă de la un array gol.,

    Scoateți singurul element prin crearea de noi matrice

    Proprietăți de soluție:

    Proprietăți de noua matrice crearea soluție

    Alternativ, tehnica de la unul din exemplele anterioare pot fi utilizate de către setare lungime de 0.

    concluzie

    JavaScript devine din ce în ce mai prietenos pentru dezvoltatori. Noi instrumente sunt adăugate cu fiecare versiune., Consecința acestui fapt este că există o mulțime de modalități de a gestiona sarcini simple. Problema eliminării elementului din matrice pare omniprezentă și, prin urmare, importantă. Sper că ați învățat ceva nou citind acest articol. De asemenea, sper că vă va încuraja să studieze lucrurile simple din DOS, ca cineva înțelept a spus odată:

    Practica-te, pentru numele lui dumnezeu în lucrurile mici, și apoi trece la mai mare. — Epictetus

    o notă din JavaScript în engleză simplă: suntem întotdeauna interesați să ajutăm la promovarea conținutului de calitate., Dacă aveți un articol pe care doriți să-l trimiteți JavaScript în engleză simplă, trimiteți-ne un e-mail la [email protected] cu numele dvs. de utilizator mediu și vă vom adăuga ca scriitor.

Author: admin

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *