14 vectori arrays a treia parte metode de adaugare stergere elemente

Recapitulare vectori, parcurgeri cu for, while, for..of, accesare ultimul element, adaugare element dupa ultimul element Metode specifice de adaugare/stergere arr.pop, arr.push(elem), arr.shift(), arr.unshift(elem). Fiind folosite pe capetele din dreapta si din stanga pot fi utilizate pentru a simula structurile de date stiva/coada Metoda arr.delete(arr[i]) sterge complet un element cu tot cu proprietatea index i. Deci poate crea vectori sparse. Metoda arr.splice(start_index, numarElemDeSters, elem1, elem2...) poate sterge si adauga oriunde in array, la inceput, la sfarsit sau oriunde in interiorul vectorului. Poate face doua lucruri, sterge un numar numarElemDeSters de elemente pornind de la pozitia start_index, sau poate adauga oricate elemente, elem1, elem2 tot de la aceeasi pozitie start_index. Metodele de concatenare folosind operatorul spread let arr_rezultat = [...arr1, ...arr2] E o metoda aparuta in ES6(2015) si are rolul de a desface continutul unui vector in elementele componente. Astfel se poate folosi in concatenare [...arr1, ...arr2] si este similar cu concatenarea clasica, [].concat(arr1,arr2) De asemeni exista un operator denumit rest care are rolul opus, acela de a colecta. Operatorul rest se afla in partea stanga a atribuirii [e1,e2, ...arrRest] = arr mai poarta numele destructurare, adica vectorul arr este descompus in partile lui componente, primele doua elemente in e1 si e2 iar restul in arrRest Pentru a nu le confunda operator spread - in dreapta arr_rezultat = [...arr1, ...arr2] operator rest - in stanga [e1,e2, ...arrRest] = arr Mai trebuie adaugat: 1. Metode care modifica vectorul (mutatoare - mutable) si metode care nu modifica vectorul (nemutatoare - mutating). De exemplu arr.slice() nu modifica vectorul, returneaza un subvector in timp ce arr.splice modifica vectorul prin stergeri sau adaugari de elemente. Metodele care nu modifica vectorul (non-mutating) sunt cele preferate. 2.Vectorii sunt mutabili indiferent cum sunct declarat pentru ca sunt obiecte, obiectele sunt o structuri de date de tip referinta. Orice element al vectorului este insa modificabil pentru ca nu se poate specifica la declarare ca vectorul propriu-zis sa fie o constanta. E posibil insa blocarea completa a modificarii prin metoda Object.freeze(arr) lucru care determina ca vectorul arr sa devina "read-only". Adica nu va functiona push, pop si orice alta metoda , inclusiv modificari punctuale precum arr[i] = "valoare", care sunt "mutating". Dezavantajul e ca nu se poate folosi atunci cand dorim o situatie de mijloc, sa putem adauga cu push/unshift/splice, dar sa nu putem modifica accidental un element din vector. Si aici intervine metoda arr.at(i) 3. Metoda "at" (ca in arr.at(i) ) a fost introdusa in 2022, ES13, si nu face altceva decat sa returneze valoarea de la un anumit index dintr-un vector. Nu modifica vectorul iar asta e o masura de siguranta atunci cand dorim ca vectorul sa ramana constant. In plus cu valori negative se poate citi din capatul celalalt al vectorului, astfel arr.at(-1) este ultimul element, doar read-only, si se poate folosi in loc de arr[arr.length-1]. La fel si pentru arr.at(-2) care e penultimul element. 4. arr.splice() modifica vectorul (mutate) si nu e preferat in mod curent, dar e bun pentru situatii cand e nevoie de mutat, sters elemente in vectorul curent pentru algoritmi care necesita modificarea vectorului original. Dar exista alternative pentru a face aceleasi operatii de adaugare/stergere in vectori fara a folosi splice si sa poate pastra vectorul original neatins: a) In loc de a sterge cu splice se poate extrage un subvector cu slice pana la startIndex, acelasi lucru de la startIndex + numarElemDeSters pana la capat, si apoi se combina cei doi vectori. let rezultat = [...arr.slice(0, startIndex), ...arr.slice(startIndex + numarElemDeSters)] b) Pentru a adauga elementele elem1, elem2, ... elem_n se poate crea un vector cu aceste elemente const elementeNoi = [elem1, elem2,...elem_n] si se face o concatenare dintre vectorul obtinut cu slice pana la startIndex, vectorul elementeNoi si vectorul de la startIndex incolo. let rezultat = [...arr.slice(0,startIndex), ...elementeNoi, ...arr.slice(startIndex)] Obs: Pentru stergere, in practica daca se cunosc proprietatile elementelor care se doresc eliminate, se face filtrare pe baza unei conditii din functieDeFiltrare care in caz ca este respectata se returneaza 'false' pentru a scoate acele elemente din vectorul returnat. arr = arr.filter(functieDeFiltrare) 5. La arr.splice stergerea si adaugarea nu se incurca reciproc, dar daca nu se doreste stergere, pe pozitia numarElemDeSters trebuie pusa valoarea 0, arr.splice(indexDeStart, 0, element1, element2, ...); 6. Operatorul rest (in stanga atribuirii) se foloseste si la colectarea parametrilor unei functii intr-un vector pentru a putea fi procesate in functie ca vector https://gist.github.com/profiasiweb/fbd221... https://shorturl.at/hPiGN

13 vectori arrays a doua parte - matrici - parcurgeri cu for..of - adaugare elemente in vectori
▶︎

13 vectori arrays a doua parte - matrici - parcurgeri cu for..of - adaugare elemente in vectori

22 functii a opta parte parametri preincarcati functii partiale
▶︎

22 functii a opta parte parametri preincarcati functii partiale

UniBuc FMI 2025 | Codul care ȘTERGE negativele are un BUG (Ep. 4)
▶︎

UniBuc FMI 2025 | Codul care ȘTERGE negativele are un BUG (Ep. 4)

08 expresii logice in stringuri interpolate
▶︎

08 expresii logice in stringuri interpolate

România în Direct: „A fost minunat, nu am știut nimic”. Ce viitor au copiii după școala românească?
▶︎

România în Direct: „A fost minunat, nu am știut nimic”. Ce viitor au copiii după școala românească?

Laravel CRUD Project | Student Management System using MySQL (XAMPP + PHP)
▶︎

Laravel CRUD Project | Student Management System using MySQL (XAMPP + PHP)

God Says:"MY CHILD, I NEED TO SEE YOU URGENTLY!"/God Message Now/God Message
▶︎

God Says:"MY CHILD, I NEED TO SEE YOU URGENTLY!"/God Message Now/God Message

Spotify Top Pop Hits 2026 🎧 Bruno Mars, Lady Gaga, Taylor Swift, Charlie Puth, Ed Sheeran,The Weeknd
▶︎

Spotify Top Pop Hits 2026 🎧 Bruno Mars, Lady Gaga, Taylor Swift, Charlie Puth, Ed Sheeran,The Weeknd

Unbelievable Smart Worker & Hilarious Fails | Construction Compilation #5 #adamrose #smartworkers
▶︎

Unbelievable Smart Worker & Hilarious Fails | Construction Compilation #5 #adamrose #smartworkers

Data Analysis with Python: Part 5 of 6 - Visualization with Matplotlib and Seaborn (Live Course)
▶︎

Data Analysis with Python: Part 5 of 6 - Visualization with Matplotlib and Seaborn (Live Course)

JANITOR vs THE BIGGEST GUYS IN THE GYM. They Didn’t Expect THAT
▶︎

JANITOR vs THE BIGGEST GUYS IN THE GYM. They Didn’t Expect THAT

Learn JavaScript - Full Course for Beginners
▶︎

Learn JavaScript - Full Course for Beginners

24 functii a zecea parte clasificare closures callbacks - strategii generale programare
▶︎

24 functii a zecea parte clasificare closures callbacks - strategii generale programare

Dezacorduri de pace cu Dragoș Pătraru şi Valeriu Nicolae: Guvern interimar până la toamnă? (@TVR1)
▶︎

Dezacorduri de pace cu Dragoș Pătraru şi Valeriu Nicolae: Guvern interimar până la toamnă? (@TVR1)

Santo Rosário | Sexta-feira | 04:00 | 26/06/2026 | Live Ao vivo
▶︎

Santo Rosário | Sexta-feira | 04:00 | 26/06/2026 | Live Ao vivo

15 functii prima parte - definire - parametri - returnare valori - stocare referinte
▶︎

15 functii prima parte - definire - parametri - returnare valori - stocare referinte

Unbelievable Smart Worker & Hilarious Fails | Construction Compilation #8 #adamrose #smartworkers
▶︎

Unbelievable Smart Worker & Hilarious Fails | Construction Compilation #8 #adamrose #smartworkers

SQL Course for Beginners [Full Course]
▶︎

SQL Course for Beginners [Full Course]

Build a Complete Medical Chatbot with LLMs, LangChain, Pinecone, Flask & AWS 🔥
▶︎

Build a Complete Medical Chatbot with LLMs, LangChain, Pinecone, Flask & AWS 🔥

System Design Course – APIs, Databases, Caching, CDNs, Load Balancing & Production Infra
▶︎

System Design Course – APIs, Databases, Caching, CDNs, Load Balancing & Production Infra