internetul Windows. Android

Împingeți exemplele JavaScript. Arrays.

Al lor apăsați () Metoda adaugă unul sau mai multe elemente la noua lungime a matricei.

Sursa pentru acest exemplu interactiv este stocată într-un depozit GitHub. Dacă doriți să contribuiți la proiectul Interactive Exemple, vă rugăm să clonați https://github.com/mdn/interactive-examples și trimiteți-ne o cerere de tragere.

Sintaxă

Arr .push (element1 [, ... [, elementn]])

Parametri.

Element. N. Elementul (elementele) de a adăuga la capătul matricei.

Valoare returnată.

Exemple.

Adăugarea elementelor la o matrice

Următorul cod creează matricea sportivă care conține două elemente, apoi adaugă două elemente la ea. Variabila totală conține noua lungime a matricei.

Fie Sports \u003d ["fotbal", "baseball"] Let Total \u003d Sports.push ("Fotbal", "Înot") Console.log (Sports) // ["Soccer", "Baseball", "Fotbal", "Înot "] Console.log (total) // 4

Fuzionând două matrice.

Acest exemplu utilizează aplicați () pentru a împinge toate elementele dintr-o a doua matrice.

Do. nu. Utilizați această metodă dacă a doua matrice (Moreveggs în exemplul) este foarte mare, deoarece numărul maxim de parametri pe care o singură funcție îl poate lua este limitat în practică. Consultați Aplicați () pentru mai multe detalii.

Fie legume \u003d ["parsnip", "cartofi"] lasa mai mult / ["țelina", "beetroot"] // fuzionați cea de-a doua matrice în primul // echivalent cu legume.push ("Țelina", "beetroot") Array.protype.push.Apply (legume, morevegs) consola.log (legume) // ["parsnip", "cartofi", "țelina", "beetroot"]

Folosind un obiect într-o manieră asemănătoare matricei

După cum sa menționat mai sus, împingeți intenționat generică și putem folosi acest lucru în avantajul nostru. Array.protype.push poate lucra pe un obiect foarte bine, după cum arată acest exemplu.

Rețineți că nu creăm o matrice pentru a stoca o colecție de obiecte. În schimb, stocăm colecția pe obiectul în sine și folosim apelul la array.protype.push pentru a trăi metoda în gândire că avem de-a face cu o matrice - și Doar lucrări, datorită modului în care JavaScript ne permite să stabilim contextul de execuție, totuși, vă rog.

Lăsați Obj \u003d (Lungimea: 0, ADDLEM: FUNCȚIA ADDLEM (ELEM) (// obj.length este incrementat automat // de fiecare dată când se adaugă un element. .Push.call (acest, elem))) // haid " Unele obiecte goale doar pentru a ilustra. Obj.addelem (()) obj.addelem (()) console.log (obj.length) // → 2

Rețineți că, deși Obj nu este o matrice, metoda împingeți cu succes proprietatea de lungime a lui OBJ, la fel ca dacă ne-am ocupat de noi, cu o matrice reală.

Specificații.

Specificație Stare. cometariu
Ecmascript ediția a 3-a (ECMA-262) Standard Definiție inițială. Implementate în JavaScript 1.2.
ECMAScript 5.1 (ECMA-262)
Standard
ECMAScript 2015 (ediția a 6-a, ECMA-262)
Definiția "array.protype.push" în acea specificație.
Standard
ECMAScript ultimul proiect (ECMA-262)
Definiția "array.protype.push" în acea specificație.
PROIECT.

Compatibilitatea browserului

Tabelul de compatibilitate din această pagină este generat din datele structurate. Dacă doriți să contribuiți la date, vă rugăm să consultați https://github.com/mdn/browser-compat-data și trimiteți-ne o cerere de tragere.

Actualizați datele de compatibilitate pe GitHub

Desktop.MobilServer
Crom.Margine.Firefox.Internet Explorer.Operă.Safari.Android WebView.Chrome pentru Android.Firefox pentru Android.Opera pentru Android.Safari pe iOS.Samsung Internet.Nod.js.
Apăsați.Chrome suport complet 1Suport complet de margine 12Firefox suport complet 1Adică suport complet 5.5Opera suport complet daSafari Full Support 1WebView Android suport complet daChrome Android suport complet 18Firefox Android suport complet 4Opera Android suport complet daSafari iOS suport complet 1Samsung Internet Android suport complet danODEJS suport complet da

Metodă apăsați () Adaugă unul sau mai multe elemente până la capătul matricei și returnează o nouă lungime de matrice.

Sintaxă

Arr .push (element1 [, ... [, elementn]])

parametri

Element. N. Elemente pentru a adăuga la capătul matricei.

Valoare returnată

Var legume \u003d ["parsnip", "cartofi"]; Va Morevegs \u003d ["Țelina", "Beetroot"]; // îmbinarea celei de-a doua matrice în primul // echivalent cu legume.push ("Țelina", "beetroot"); Array.protype.push.Apply (legume, Morevegs); Consola.log (legume); // ["parsnip", "cartofi", "țelina", "beetroot"]

Folosind un obiect sub forma unei matrice

După cum sa menționat mai sus, împingerea este deliberat generală și o putem folosi în interesele noastre. Array.protype.push poate lucra cu obiectul doar excelent, deoarece arată acest exemplu. Vă rugăm să rețineți: nu creăm o matrice pentru stocarea colecției de obiecte. În schimb, stocăm colecția pe obiectul în sine și folosim apelul Array.protype.push pentru a păcăli metoda, gândindu-se că avem de-a face cu o matrice și doar lucrări, datorită faptului că JavaScript ne permite să stabilim contextul de execuție , cu toate acestea, vă rog.

Var Obj \u003d (Lungimea: 0, Addelem: Funcție Addlem (ELEM) (// obj.length este incrementat automat // de fiecare dată când se adaugă un element. .Push.Call (acest element, elem);)); // să adăugăm niște obiecte goale doar pentru a ilustra. Obj.addelem (()); obj.addelem (()); consola.log (obj.length); // → 2

Rețineți că, deși Obj nu este o matrice, metoda de împingere crește cu succes valoarea obiectului obj, ca și cum ne ocupăm de matricea reală.

Caracteristici

Compatibilitate cu browserul.

Caracteristică Web View Android. Chrome pentru Android. Edge Mobile. Firefox pentru Android. Sistem de operare Android. Ios safari. Samsung Magazin online.

Stack-ul vă permite să atribuiți această istorie a modificărilor valorilor variabile. Descrierea datelor și algoritmii subliniază programarea. Stack-ul este baza pentru transmiterea comenzilor între funcții, organizarea recursului și referințele la parametrii. Sintaxă și semantica JavaScript prin intermediul unor metode de împingere () și pop () fac posibilă manipularea semnificației și luarea în considerare a factorului de timp. Particularitatea limbii browserului și a logicii sale pot arăta altfel posibilitatea factorului de timp.

Array de date și logica formării sale

Descrieți doar variabila. Este ușor să creați o serie de variabile. Un algoritm care utilizează date este o soluție statică și simplă a problemei. Lucrări de date clasice:

  • descrie (crea) variabila;
  • atribuiți o valoare;
  • schimbați valoarea;
  • Ștergeți variabila.

Funcțiile Push () și Pop () vă permit să schimbați esența variabilelor și să le utilizați. Ideea de stivă nu sa schimbat de la "nașterea", ci caracterul JS ca limbă de browser și conceptul de programare modern face posibilă luarea în considerare a factorului de timp și de a da aceste dinamici.

Funcția de valoare ") - Adăugați ceva la capătul matricei. Funcția este de a extrage ultimul element al matricei. Pointerul din contextul Push / Pop este mutat la elementul adăugat atunci când îndepărtați elementul penultim și ultimul elementul este rezultatul operațiunii.

Stack de plăci - descrierea tradițională a stivei în JavaScript - dobândește un nou înțeles. Lăsați întotdeauna variabila - aceasta este o matrice. De fapt, o matrice este o combinație de variabile, dar având în vedere variabila ca o matrice, altfel puteți examina dinamica modificărilor valorilor sale.

Mișcare prin valori

Esența stack-ului - a venit ultima, a mers mai întâi. Nu puteți elimina valoarea în afara acestei comenzi. Respectând strict această regulă, având în vedere valorile întregii matrice ca o variabilă, puteți obține dinamica modificărilor în valorile acestei variabile în timp.

În acest exemplu, adăugarea valorilor JS Array.Push (...) este o secvență de acțiuni, extracția valorilor JS Array Pop () este o altă secvență. Ambele variante sunt interdependente. Aceasta înseamnă că elementul activ își modifică valoarea nu numai de timp, ci și de logica schimbării sale.

Recursion și dinamică

Dacă funcția se poate provoca și își îndeplinește în mod sigur scopul - aceasta este o funcționalitate completă. Un exemplu simplu este o masă. Pot exista și alte tabele din tabel. Și fiecare masă este liniile, coloanele și celulele. Fiecare celulă poate conține o masă. Celulele multiple pe rând sau printr-o coloană pot fi combinate într-o singură celulă, în care se poate localiza tabelul. În tabelul situat în celulă, poate exista o celulă cu două și mai multe mese.

Este aproape imposibil să se implementeze stilul de programare clasic, dar în recursiv - elementar. Dacă funcționalitatea algoritmului de lucru cu masa vă permite să vă realizați în orice mod celular, este JS Array Push. Pe JavaScript, acest "focus" are un înțeles special. Tabelele sunt aplicații personalizate. Pagina copac (DOM) este un loc de muncă pe pagină.

Pe elemente DOM (etichete de pagină) stivuitoare atârnă. O opțiune atunci când un astfel de manipulare este declanșat o dată, o opțiune complet diferită atunci când se poate provoca de mai multe ori. În contextul tuturor manipulatoarelor toate elementele paginii, se obține difuzorul de timp.

Push / Pop și Recursion este o idee ușor diferită a logicii paginii paginii: Totul modificări conform cerințelor în situația actuală și nu sunt programate în prealabil sub forma unui studiu consistent al acțiunilor vizitatorilor.

Masivele pot fi operate prin diferite metode oferite de designerul Array.

Metode Pop / Push și Shift / Desfaceți

Luați în considerare metodele Pop () și Push (). Aceste metode permit să lucreze cu matrice ca și în cazul stivelor. Stack-ul este o structură de date în care accesul la elemente este organizat în conformitate cu principiul Lifo (English. Ultimul în - mai întâi, "Ultimul a venit - primul stânga"). Principiul funcționării stack-ului poate fi comparat cu un teanc de plăci: pentru a lua al doilea deasupra, trebuie să scoateți cea superioară. Cum funcționează descris în imagine:

Și astfel să ne întoarcem la luarea în considerare a metodelor de împingere () și pop (). Metoda Push () adaugă unul sau mai multe elemente noi până la capătul matricei și returnează o nouă lungime. Metoda Pop () șterge ultimul element al matricei, reduce lungimea matricei și returnează prestarea de valoare. Merită să acordăm atenție faptului că ambele metode schimbă matricea în loc și nu creează copia modificată.

Var foo \u003d; // foo: foo.push (1,2); // foo: returnează 2 foo.pop (); // foo: returnează 2 foo.push (3); // foo: returnează 2 foo.pop (); // foo: returnează 3 foo.push (); // foo:] returnează 2 foo.pop () // foo: returnează foo.pop (); // foo: returnează 1 var fructe \u003d ["pere", "banane", "mere"]; var picked \u003d fructes.pop (); Document.write ("mi-ai rupt" + picked); Încerca

Metodele de schimbare () și de dezecută () se comportă în mare măsură, precum și Pop () și împingeți (), cu excepția faptului că inservează și îndepărtează elementele de la începutul matricei. Metoda de desființă () Afișează elementele existente către indicii mari pentru a exemplifica spațiul pentru elemente noi, adaugă unul sau mai multe elemente la începutul matricei și returnează o nouă lungime a matricei. Metoda Shift () șterge primul element al matricei și returnează valoarea acestuia prin schimbarea tuturor elementelor ulterioare pentru a ocupa spațiul liber la începutul matricei.

Var f \u003d; / F: F.Shift (1); / F: Returnează: 1 F.Shift (22); // F: Returnează: 2 F.Shift (); // F: Returnează: 22 F.Shift (3,); / F: 1] Returnează: 3 F.Shift (); / F: [, 1] returnează: 3 F.Shift (); // F: Returnează: F.Shift (); // F: Returnează: 1

Alăturați-vă metoda

Metoda Array.Join () este utilizată pentru a combina elemente de matrice într-o singură linie. Metoda poate fi transferată într-un argument de șir opțional care va fi utilizat pentru a separa elementele din șir. Dacă separatorul nu este specificat, atunci când apelați metoda, simbolul implicit va fi o virgulă.

Var a \u003d ["vânt", "ploaie", "foc"]; Var Myvar1 \u003d A.Join (); // "vânt, ploaie, foc" var myvar2 \u003d.join (","); // "vânt, ploaie, foc" var myvar3 \u003d.join ("+"); // "vânt + ploaie + foc" document.write (myvar1 + "
"+ Myvar2 +"
"+ Myvar3); încercați"

Metoda Array.JoIn () este inversă în raport cu metoda string.split (), care creează o matrice prin împărțirea șirului la fragmente.

Metoda inversă

Metoda Array.Revers () modifică ordinea elementelor din matrice la opusul și returnează o matrice cu elementele rearanjate. Această metodă nu creează o nouă matrice cu elemente reordonate și le redirecționează într-o matrice existentă.

Var myarr \u003d ["unul", "două", "trei"]; document.write (myarr.reverse ()); Încerca

Metoda Concat.

Metoda Array.concat () creează și returnează o nouă matrice care conține elementele matricei sursă pentru care a fost numită metoda Concat (), completată în mod consecvent de valorile tuturor argumentelor transmise prin metoda Concat (). Dacă oricare dintre aceste argumente este o matrice, atunci toate elementele sale vor fi adăugate. Numele de matrice sunt folosite ca argumente și sunt indicate în ordinea în care elementele lor trebuie combinate.

Var a \u003d; A.Concat (4, 5) // returnează A.Concat (); // aceleași - returnează A.Concat (,) // returnează

Metoda de sortare

Metoda Array.Sort () sortează elementele matricei și returnează matricea sortată. Dacă metoda Sortare () este apelată fără un argument, acesta sortează elementele matricei într-o ordine alfabetică (convertește temporar în corzi pentru a compara comparația). Ca argument, metoda Sortare () poate primi o funcție de comparație care determină ordinea de sortare a elementelor.

Var a \u003d ["kiwi", "portocale", "pere"]; A.Sort (); var s \u003d a.join (","); // portocale, pere, kiwi document.write (s); // exemplu cu numerele vary myarr \u003d; myarr.sort (); Document.write (myarr); // 1,10,2 încercați "

Probabil de la numere de sortare pe care le așteptați să vedeți un rezultat puțin diferit. O astfel de sortare a avut loc deoarece metoda Sortare sortează elementele transformându-le în corzi. Prin urmare, ordinea lor este obținută de un șir - pentru că "10"

Pentru a sorta în orice altă ordine decât alfabetic, puteți transfera metoda Sortare ca argument funcția de comparare. Cu toate acestea, trebuie remarcat faptul că funcția de comparare va trebui să fie scrisă. Această caracteristică trebuie să aibă doi parametri, deoarece stabilește care dintre cele două argumente ar trebui să fie prezente mai devreme în lista sortată. Pentru a facilita descoperirea și scrierea unei astfel de funcții, există mai multe reguli pentru care va fi determinată ordinea elementelor:

  • Dacă primul argument trebuie să precede al doilea, funcția de comparație returnează un număr negativ (dacă a
  • Dacă primul argument ar trebui să urmeze al doilea, atunci funcția de comparație returnează un număr pozitiv (dacă a\u003e b)
  • Dacă două valori sunt echivalente (adică, ordinea locației lor nu este importantă), funcția de comparație returnează 0 (dacă a \u003d\u003d b)

Pentru comparație, funcția utilizează elementele matricei ca argumente:

Funcția Foo (A, B) (// determină funcția de verificare dacă (a b) retur 1; retur 0; // dacă a \u003d\u003d b) var a \u003d; A.Sort (foo); // Numai numele funcției Document.Write este transmis ca argument (A.Join (",")); // scris, de asemenea, mai curând var A \u003d; A.Sort (funcția (A, B) (// utilizați returnarea funcției anonime A - B; // funcția returnează o valoare 0)); Document.write (a); // 1,2,5,10 încercați "

Prima intrare este scrisă în exemplu, astfel încât este mai ușor să înțelegeți cum funcționează. Rețineți cât de convenabil să utilizați o funcție anonimă în cel de-al doilea fragment. Se numește doar o singură dată, deci nu este nevoie să-i dați un nume.

Notă: Dacă există elemente incerte în matrice (nedefinite), ele sunt transferate până la capătul matricei.

Metoda de felie

Metoda Array.Slice () este utilizată pentru a copia zona specificată de la matrice și returnează o nouă matrice care conține elemente copiate. Matricea sursă nu se schimbă.

Sintaxă metodă:

Name_massiva.slice (începe, sfârșitul);

Numele poștalului trebuie înlocuit cu numele acelei matrice, de la care trebuie să extrageți un anumit set de elemente pentru o nouă matrice. Metoda are două argumente care determină începutul și sfârșitul zonei returnate a matricei. Metoda copiază porțiunea de matrice începând de la început până la sfârșit, fără a include sfârșitul. Dacă este specificat un singur argument, matricea returnată va conține toate elementele din poziția specificată până la capătul matricei. Puteți utiliza indicii negativi - sunt numărați de la capătul matricei.

Var arr \u003d; arr.slice (0,3); // returnează arr.slice (3); // returnează arr.slice (1, -1); // returnează arr.slice (-3, -2); // Se intoarce

Metoda de îmbinare

Metoda Array.splice () este o metodă universală pentru a lucra cu matrice. Modifică matricea în loc și nu returnează o nouă matrice modificată, deoarece metodele de felie () și concate (). Metoda de îmbinare poate șterge elementele din matrice, introduceți elemente noi, înlocuiți elementele - la rândul lor și în același timp. Acesta returnează o matrice constând din elemente de la distanță, dacă niciunul dintre ele nu a fost eliminat, va returna o matrice goală.

Sintaxă metodă:

Lassiva Name.splice (Index, Count, Elem1, ..., Elemn);

Primul argument indică indicele din matricea din care începe inserarea sau îndepărtarea elementelor. Al doilea argument stabilește numărul de elemente care trebuie eliminate din matrice pornind de la indicele specificat în primul argument dacă al doilea argument este 0, atunci elementele nu vor fi șterse. Dacă al doilea argument este omis, toate elementele matricei pornind de la indicele specificat până la capătul matricei sunt îndepărtate. Când utilizați un număr de poziție negativ, numărătoarea inversă a elementelor va fi de la capătul matricei.

Var Fructes \u003d ["portocale", "mere", "pere", "struguri"]; var șterse \u003d fructe.splice (2.2); // returnează ["pere", "struguri"] document.write (șters); var arr \u003d; arr.splice (4); // Se intoarce; Matricea a devenit: arr.splice (1,2); // Se intoarce; O matrice a devenit: arr.splice (1,1); // Se intoarce; Matricea a început: încercați "

Primele două argumente ale metodei de îmbinare () se stabilesc elementele matricei care trebuie îndepărtate. Pentru aceste două argumente, orice număr de argumente suplimentare care specifică elemente care vor fi introduse într-o matrice pornind de la poziția specificată de primul argument.

Var Fructes \u003d ["portocale", "mere"]; fructe.splice (2.0, "pepeni"); // returnează document.write (fructe); // a devenit ["portocale", "mere", "pepene verde"] var arr \u003d; arr.splice (2.0, "a", "b"); // Se intoarce; a devenit arr.splice (2.2,); // returnează ["A", "B"]; A devenit, 3,4,5] încercați "

Este de remarcat atenția asupra acestui fapt, spre deosebire de Concat (), metoda de îmbinare () nu se rupe în elemente separate de matrice transmise ca argumente. Aceasta este, dacă o matrice este transmisă la metoda de inserție, ea introduce o matrice în sine și nu elementele acestei matrice.

Metoda de tostring.

Metoda Tostring () convertește elementele matricei în șir folosind o virgulă ca simbol divizat.

Var arr \u003d ["lapte", "pâine", "cookie-uri"]; VAR FOOD \u003d ARR.TOSTRING (); Document.write (alimente); // lapte, pâine, cookie-uri încearcă "

Notă, metoda returnează același șir ca metoda Alăturare () atunci când îl sunați fără argumente.

indexarea și LastIudexof.

Metoda indexului returnează indicele elementului a cărui valoare este egală cu valoarea transmisă ca argument.

Metode de sintaxă Indexarea () și LastIvExof ():

Etichetă_name.indexof_name (skeeping_element, index) Numele MMassiva.Lastindexof (dorit_element, index)

Primul argument al metodei indică valoarea elementului, indicele pe care trebuie să-l găsiți, al doilea argument (opțional), indică indicele din care va începe căutarea. Dacă aceleași apariții sunt oarecum, este selectat cel mai mic (mai întâi) index. Dacă elementul cu valoarea dorită nu este găsit, metoda se va întoarce -1. În metoda de căutare este utilizată o comparație strictă (\u003d\u003d\u003d).

Var a \u003d; A.Indexof (3); // returnează 2 A.Indexof (3.4); // returnează 6 A.Indexof (35); // retur -1: nici un element cu o astfel de valoare de a.Indexof (2); // unu

Metoda LastIindexof () returnează, de asemenea, indicele elementului a cărui valoare este egală cu valoarea transmisă ca argument. Singura diferență este că metoda Lastindexof () alege cel mai mare (ultimul) indice.

Var a \u003d; A.Lastindexof (3); // returnează 7 A.Lastindexof (35); // retur -1: nici un element cu o astfel de valoare de a.lastindexof (2); // 6.

Metode de iteratori

Metodele descrise mai jos sunt iteratoare. În toate browserele moderne pentru lucrul cu matrice există metode care sunt destinate agitației elementelor și efectuează diverse acțiuni asupra acestora. Acestea sunt foreau (), harta (), filtru (), fiecare (), unele, reduce () și reducător ().

Ele mișc elementele matricei începând de la 0 la lungime - 1 și, dacă elementul există, transmiteți-l la funcția procesorului de apel invers.

pentru fiecare.

Sintaxă metodă:

Name_massiva.forech (apelback, Asert)

Ca primul argument, funcția de callback este indicată faptul că metoda Foreau () va apela pentru fiecare element al matricei. Trebuie să fie scrisă implementarea funcției de manipulare numită. Funcția rezultată trebuie să aibă trei parametri: Primul parametru durează ca argument - valoarea elementului de matrice, al doilea este indicele elementului, iar al treilea este matricea însăși. Cu toate acestea, dacă trebuie doar să utilizați valorile elementelor de matrice, puteți scrie o funcție cu un singur parametru. Al doilea argument - ACEARG (opțional) va fi transferat ca valoare a acestui lucru.

Var arr \u003d; Funcția Foo (valoare) (Var Sum \u003d Valoare * Aceasta; Return Document.Write (Sum + "
");) Arr.Forecher (foo, 5); // al doilea argument va fi transferat ca valoare a acestui / exemplu cu trei parametri var a \u003d; A.Fore (funcția (El, IDX, A) (document .Write ("A [" + IDX + "] \u003d" + EL + "în [" + A + "]
");)); Încerca"

filtru.

Sintaxă metodă:

MMASSIVE NAME.FILTER (Callback, Thisobject)

Metoda Filtru () creează și returnează o nouă matrice care va conține numai acele elemente ale matricei pentru care apelul apelului va reveni la true.

Funcție isbig (element, index, matrice) (// returnează numerele care sunt mai mari sau egale cu 10 retur (element\u003e \u003d 10); // dacă valoarea elementului este mai mare sau egală cu 10 - expresia se va întoarce Adevărat) var filtrat \u003d .filter (ISBIG); // filtrate

hartă

Metoda Hartă () creează și returnează o nouă matrice care va consta în apelul funcției de apel invers (element, IDX, AR) pentru fiecare element al matricei.

Var a \u003d; Var b \u003d a.map (funcție (element, idx, arr) (element de returnare *)); // b \u003d

fiecare și unii.

Orice metodă () returnează adevărata dacă pentru toate elementele de matrice, funcția specificată utilizată pentru a le verifica va reveni true.

Unele () metoda returnează TRUE dacă, în timpul testului, unul sau mai multe elemente vor fi returnate la funcția specificată.

Var a \u003d; A.Every (x) (retur x 10;)) // Adevărat: un număr\u003e 10

reduceți și reducări

Sintaxă metodă:

Match_Reduce_name (Callback, InitialValue) Nume Lassiva.Reduceright (apel invers, InitialValue)

Metoda Reduce () aplică funcția specificată (apel invers) în raport cu cele două valori imediat în matrice, transformându-se peste elementele de la stânga la dreapta, menținând în același timp un rezultat intermediar.

Funcția de apel Indicație Argumente: (Precedente, CurrentIteM, Index, Array)

  • precedenteValue - Rezultatele apelurilor de returnare (este un rezultat intermediar)
  • currentIteM - elementul actual al matricei (elementele sunt mutate la rândul său stânga-topoint)
  • index - indicele elementului curent
  • array - matrice procesate

valoarea inițială (valoarea inițializării) este un obiect utilizat ca primul argument pentru primul apel al funcției de apel invers. Pur și simplu, valoarea anterioarăValue la primul apel este inițială. Dacă valoarea inițială nu este, atunci este egală cu primul element al matricei, iar bustul pornește de la al doilea:

Var a \u003d; Funcție Foo (prevnum, Cururn) (Sum \u003d Prevnum + Cururn; Alertă (sumă); Suma de retur;) Var rezultat \u003d A.reduce (foo, 0); Document.write (rezultat); Încerca

Vom analiza modul în care funcționează acest exemplu. Primele argumente ale funcției Foo sunt:

  • prevnum \u003d 0 (de la valoarea inițială - 0)
  • cURNUM \u003d 1 (Element curent - primul element al matricei)

1. Se adaugă acest rezultat (suma: 1) 1. Acest rezultat va fi transmis ca prevnum când funcția începe în continuare. Și așa mai departe până când ajunge la ultimul element. Rezultat returnat - suma ultimei lansare va fi de 15 (1 + 2 + 3 + 4 + 5).

Metoda Reductor funcționează în mod similar cu metoda Reduceți, dar merge pe masivul din stânga din dreapta:

Var a \u003d ["h", "o", "m", "e"]; Bara de funcții (prevstr, curimem) (return prevstr + curiem;) document.write (A.reducer (bar)); // emoh.

În JavaScript. Aici vom continua să ne familiarizăm cu matricele. Să vorbim despre proprietatea de lungime - cum să aflați: Câte articole conțin o matrice?

A preda adăugați elemente Începutul și sfârșitul matricei sunt în mod necorespunzător și, respectiv, metode de împingere.

Precum și utilizarea metodelor de schimbare și pop eliminați elementele De asemenea, de la începutul și sfârșitul matricei!

În esență, matricea este un anumit obiect constând dintr-un anumit număr de elemente diferite.

Proprietatea de lungime va permite să afle numărul de elemente din matrice.

De exemplu, să luăm o gamă de șapte zile de săptămâna noastră familiar cu ultima temă.

Să învățăm și să aducem numărul de elemente ale matricei pe ecran. Pentru a face acest lucru, aveți nevoie de cum vedeți în exemplul de mai jos, creați o variabilă, valoarea căreia este gama de interes pentru noi, pentru care, la rândul său, este indicată de proprietatea de lungime.

array.Lend - Un astfel de cod ne oferă numărul de elemente ale matricei (Unde array. - numele matricei) .

Astfel, în variabila de numărare am plasat un număr egal cu numărul de elemente de matrice.

Acesta este modul în care funcționează proprietatea de lungime.

Metoda push - adaugă un element până la capătul matricei.

Pentru a începe să lucrați cu metodele de adăugare a elementelor, trebuie să creați orice matrice.

Mai jos am creat o serie de prieteni - prieteni.

Acum trebuie să adăugăm un element, adică un alt nume în capătul matricei.

Pentru aceasta, există o metodă de împingere - adaugă un element până la capătul matricei. Se pare așa:

Nastya, Grigory, Vyacheslav, Alexey, Yakov

Yakov.

Pentru a verifica metoda de împingere din exemplul de mai sus, am adus numărul de elemente ale matricei de prieteni folosind proprietatea de lungime - au fost 5. Apoi au adus întreaga matrice de prieteni, de asemenea ultimul element al matricei .

Acum vă puteți asigura că elementul este adăugat la capătul matricei!

Metoda de neconceput - Adaugă un element În partea de sus a masivului.

Aici ne întoarcem la gama de prieteni.

Acum trebuie să adăugăm un element la începutul matricei. Pentru a face acest lucru, există o metodă de desființare.

Numărul de elemente din matrice este de 5

Boris, Nastya, Grigory, Vyacheslav, Alexey

Boris.

Pentru a verifica funcționarea metodei de neconceput, am derivat numărul de elemente ale matricei de prieteni folosind proprietatea de lungime, apoi a adus și întreaga matrice armes primul element al matricei (Vă reamintim că numerotarea elementelor matricei începe cu 0) .

Acum, după cum puteți vedea, elementul a fost adăugat la începutul matricei!

Metoda POP - elimină ultimul element din masiv.

Și din nou lucrăm cu o serie de "prieteni"

Folosind metoda POP - scoateți ultimul element din matrice:

Nastya, Grigory, Vyacheslav

Vyacheslav.

Pentru claritatea metodei POP, ieșim din nou numărul de elemente de matrice folosind proprietatea de lungime, apoi a fost afișată întreaga matrice de prieteni - fără ultimul element de la distanță.

Și de asemenea derivate ultimul element Masivul nou primit . Pentru a afișa ultimul element utilizând proprietatea de lungime, am obținut numărul total de elemente rămase în matricea (3) și am detectat de la acesta 1. Astfel, am adus ultimul element al matricei la numărul 2. Dar acesta este al treilea Element, deoarece numerotarea din matrice începe cu 0 !!!

Metoda de schimbare - Îndepărtează primul element al matricei.

Înainte de noi, ca înainte, gama de "prieteni"

Folosind metoda de schimbare - scoateți primul element din matrice:

Numărul de elemente din matrice este de 3

Gregory, Vyacheslav, Alexey

Grigory.

În cele din urmă, pentru a verifica activitatea metodei de schimbare, am adus numărul de elemente ale matricea recent primită folosind proprietatea de lungime, apoi a adus întreaga gamă de prieteni - fără un prim element de la distanță.

Și de asemenea derivate primul element al matricei. Numerotarea din matrice începe cu 0 !!!

Vă reamintesc pentru tine și pentru unul singur un moment interesant Acest articol!

Pentru a afla numărul / indicele ultimului element al matricei, aveți nevoie de la elementele sale (adică de la) Scaunați unul!

Am lucrat deja cu acest lucru la subiectul.

O opțiune bună de ilustrare a acestui moment va fi continuarea unui exemplu din partea subiectului în care am considerat o serie de șapte zile ale săptămânii.

Numărul de elemente din matricea zilei este de 7

Numărul ultimului element al matricei este numărul 6

Deci, prin acest exemplu, am remarcat din nou faptul că numerotarea în matrice începe cu 0. Și, după cum se poate vedea din acest exemplu, numărul celui de-al șaptelea element al matricei este numărul 6.

La sfârșitul acestui subiect, vă voi efectua și temele. Și încercați din nou să o rezolvați singur.

Tema pentru a elimina de la ... și adăugarea de elemente la o matrice din JavaScript are următorul conținut:

1. Creați o matrice cu fructe: portocaliu, banană, pere.
2. Testați pe ecran, cât de mult aveți fructe în matricea în acest moment.
3. Utilizarea metodelor studiate în lecția anterioară, adăugați două fructe până la capătul matricei - măr și ananas și la începutul masivului - grapefruit.
4. Afișați în momentul în care aveți fructe în matricea în acest moment.
5. Utilizarea metodelor studiate în lecția anterioară, eliminați ultimul și primul element de la masiv.
6. Afișați în momentul în care aveți fructe în matrice în acest moment.

Portocaliu, banană, pere

Acum în coșul meu 3 fructe

Grapefruit, Orange, Banana, Pear, Apple, ananas

Acum în coșul meu 6 fructe

Portocaliu, banană, pere, măr

Acum în coșul meu 4 fructe