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.
Proprietăți de 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.
Properties of the 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.,Proprietăți de 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.
Properties of the 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.
Proprietăți de 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.
Proprietăți de 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ă.,
Proprietăți de 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.,
Proprietăți de 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.,
Proprietăți de 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.