JavaScript: Eliminați element dintr-o matrice
Eliminarea elementelor dintr-o matrice JavaScript este o paradigmă obișnuită de programare cu care se confruntă adesea dezvoltatorii. Ca și în cazul multor lucruri JavaScript, acest lucru nu este atât de simplu pe cât ar trebui să fie probabil.
Există, de fapt, mai multe moduri de a elimina unul sau mai multe elemente dintr-o matrice – fără a vă smulge părul în acest proces – așa că haideți să le parcurgem pe fiecare unul câte unul.
Eliminarea unui element folosind splice()
Metoda splice() este o modalitate versatilă de a elimina, înlocui și/sau adăuga elemente într-o matrice. Funcționează în mod similar cu funcțiile splice() din alte limbi. Practic, luați o matrice și eliminați selectiv porțiuni din ea (alias „splice”). Intrările în funcția splice() sunt punctul index de la care începe și numărul de elemente de eliminat.
De asemenea, rețineți că tablourile sunt indexate zero în JavaScript.
Pentru a elimina un element dintr-un anumit index dintr-o matrice:
[“bar”, “baz”, “foo”, “qux”] list.splice(2, 1) // Începând cu poziția indexului 2, eliminați un element [„bar”, “baz”, “qux”] listă .splice(2,2) // Începând cu poziția indexului 2, eliminați două elemente [„bar”, „baz”]
Apelul splice() va returna toate elementele eliminate, astfel încât să știți ce a fost de fapt eliminat.
Eliminarea unei game de elemente folosind splice()
Doar pentru a vă asigura că nu ați ratat-o în exemplul anterior, merită să menționați în mod special că puteți elimina mai multe elemente consecutive cu splice() .
Pentru a elimina mai multe elemente consecutive dintr-o matrice:
[“bar”, “baz”, “foo”, “qux”] list.splice(0, 2) // Începând cu poziția indexului 0, eliminați două elemente [„foo”, “qux”]
Eliminarea unui element folosind pop()
Metodele matrice push() și pop() funcționează la sfârșitul unui tablou. Termenii push() și pop() provin din ideea unei stive în memorie din primele zile ale microprocesoarelor. Aceasta implementează ideea unei structuri de date Last-In-First-Out (LIFO). Metoda push() va ADĂUGA un element în matrice, iar metoda pop() va elimina unul.
Pentru a elimina ultimul element al unui tablou:
[„bar”, „baz”, „foo”, „qux”] list.pop() [„bar”, „baz”, „foo”]
Eliminarea unui element folosind shift()
Metodele matrice shift() și unshift() funcționează la începutul unui tablou în loc de sfârșitul unei matrice, așa cum este cazul cu push() și pop() . Comanda shift() va elimina primul element al matricei, iar comanda unshift() va adăuga un element la începutul matricei.
Pentru a elimina primul element al unui tablou:
[„bar”, „baz”, „foo”, „qux”] list.shift() [„baz”, „foo”, „qux”]
Căutarea și eliminarea unui anumit element după valoare
Comanda indexOf() returnează primul index la care un anumit element poate fi găsit în matrice, sau -1 dacă nu este prezent. Acesta poate fi folosit împreună cu splice() pentru a căuta un element și apoi a-l elimina, chiar dacă nu știți unde se află în matrice.
Să eliminăm elementul „foo”:
[“bar”, “baz”, “foo”, “qux”] list.splice( list.indexOf(‘foo’), 1 ); // Găsiți poziția de index a „foo”, apoi eliminați un element din acea poziție
Eliminarea mai multor elemente specifice
Să adăugăm un element suplimentar „foo” la matricea noastră și apoi să eliminăm toate aparițiile „foo”:
[„bar”, „baz”, „foo”, „foo”, „qux”] for( var i = list.length-1; i–;){ if ( list[i] === ‘foo’) list.splice(i, 1); } [„bar”, „baz”, „qux”]
Rețineți că am fi putut folosi și metoda filter() pentru această operație, dar asta ar fi creat o nouă matrice, deoarece filter() nu modifică matricea pe care este apelată.
Dacă trebuie să faceți multă filtrare, folosirea metodei filter() ar putea curăța destul de mult codul.
Concluzie
Când vine vorba de asta, eliminarea elementelor din matrice în JavaScript este destul de simplă. Convențiile de numire pot fi puțin ciudate la început, dar odată ce o faci de câteva ori, o vei putea face fără să te gândești (sau să arunci o a doua privire la acest articol).
Dezvăluirea agentului de publicitate
Gazduirweb este o resursă online gratuită care oferă utilizatorilor conținut valoros și servicii de comparare. Pentru a menține această resursă 100% gratuită, primim compensații de la multe dintre ofertele afișate pe site. Alături de factorii cheie de revizuire, această compensație poate afecta modul în care și locul în care apar produsele pe site (inclusiv, de exemplu, ordinea în care apar). Gazduirweb nu include întregul univers al ofertelor disponibile. Opiniile editoriale exprimate pe site sunt strict ale noastre și nu sunt furnizate, susținute sau aprobate de agenții de publicitate.
Politica noastră de revizuire editorială
Site-ul nostru se angajează să publice conținut independent, precis, ghidat de reguli editoriale stricte. Înainte ca articolele și recenziile să fie publicate pe site-ul nostru, acestea sunt supuse unui proces amănunțit de revizuire efectuat de o echipă de editori independenți și experți în materie pentru a asigura acuratețea, actualitatea și imparțialitatea conținutului. Echipa noastră editorială este separată și independentă de agenții de publicitate ai site-ului nostru, iar opiniile pe care le exprimă pe site-ul nostru sunt proprii. Pentru a citi mai multe despre membrii echipei noastre și despre mediul lor editorial, vă rugăm să vizitați pagina Despre a site-ului nostru.
Leave a Reply