--- title: Array slug: Web/JavaScript/Reference/Global_Objects/Array tags: - Array - JavaScript translation_of: Web/JavaScript/Reference/Global_Objects/Array original_slug: Web/JavaScript/Referencje/Obiekty/Array --- <div>{{JSRef("Global_Objects", "Array")}}</div> <p><code>Array</code> w języku JavaScript jest globalnym obiektem, który jest używany podczas tworzenia tablic – listo-podobnych obieków wysokiego poziomu.</p> <div class="boxed translate-rendered"> <p><strong>Stwórz tablicę</strong></p> <pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> owoce <span class="operator token">=</span> <span class="punctuation token">[</span><span class="string token">'Jabłko'</span><span class="punctuation token">,</span> <span class="string token">'Banan'</span><span class="punctuation token">]</span><span class="punctuation token">;</span> console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>owoce<span class="punctuation token">.</span>length<span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// 2</span></code></pre> </div> <p><strong>Dostawanie się do elementu tablicy</strong></p> <pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> pierwszy <span class="operator token">=</span> owoce<span class="punctuation token">[</span><span class="number token">0</span><span class="punctuation token">]</span><span class="punctuation token">;</span> <span class="comment token">// Jablko</span> <span class="keyword token">var</span> ostatni <span class="operator token">=</span> owoce<span class="punctuation token">[</span>owoce<span class="punctuation token">.</span>length <span class="operator token">-</span> <span class="number token">1</span><span class="punctuation token">]</span><span class="punctuation token">;</span> <span class="comment token">// Banan</span></code></pre> <p><strong>Pętla przechodząca przez zawartość tablicy</strong></p> <pre class="brush: js line-numbers language-js"><code class="language-js">owoce<span class="punctuation token">.</span><span class="function token">forEach</span><span class="punctuation token">(</span><span class="keyword token">function</span><span class="punctuation token">(</span>item<span class="punctuation token">,</span> index<span class="punctuation token">,</span> array<span class="punctuation token">)</span> <span class="punctuation token">{</span> console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>item<span class="punctuation token">,</span> index<span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// Jablko 0</span> <span class="comment token">// Banan 1</span></code></pre> <p><strong>Dodawanie elementu na końcu tablicy</strong></p> <pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> nowaDługosc <span class="operator token">=</span> owoce<span class="punctuation token">.</span><span class="function token">push</span><span class="punctuation token">(</span><span class="string token">'Pomarańcz'</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// ["Jabłko", "Banan", "Pomarańcz"]</span></code></pre> <p><strong>Usuwanie elemetu z końca tablicy</strong></p> <pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> ostatni <span class="operator token">=</span> owoce<span class="punctuation token">.</span><span class="function token">pop</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// usuwa pomarańczę z końca</span> <span class="comment token">// ["Jabłko", "Banan"];</span></code></pre> <p><strong>Usuwanie elementu z przodu tablicy</strong></p> <pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> pierwszy <span class="operator token">=</span> owoce<span class="punctuation token">.</span><span class="function token">shift</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// usuwa jabłko z początku</span> <span class="comment token">// ["Banan"];</span></code></pre> <p><strong>Dodawanie elementu z przodu tablicy</strong></p> <pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> nowaDługość <span class="operator token">=</span> owoce<span class="punctuation token">.</span><span class="function token">unshift</span><span class="punctuation token">(</span><span class="string token">'Truskawki'</span><span class="punctuation token">)</span> <span class="comment token">// dodaje na początku</span> <span class="comment token">// ["Truskawkę", "Banan"];</span></code></pre> <p><strong>Znajdowanie indeksu (numeru porządkowego) elementu t tablicy</strong></p> <pre class="brush: js line-numbers language-js"><code class="language-js">owoce<span class="punctuation token">.</span><span class="function token">push</span><span class="punctuation token">(</span><span class="string token">'Mango'</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// ["Truskawka", "Banan", "Mango"]</span> <span class="keyword token">var</span> pos <span class="operator token">=</span> owoce<span class="punctuation token">.</span><span class="function token">indexOf</span><span class="punctuation token">(</span><span class="string token">'Banan'</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// 1</span></code></pre> <p><strong>Usuwanie obiektu przy użyciu indeksu </strong></p> <pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> usunElement <span class="operator token">=</span> owoce<span class="punctuation token">.</span><span class="function token">splice</span><span class="punctuation token">(</span>pos<span class="punctuation token">,</span> <span class="number token">1</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// tak się usuwa element</span> <span class="comment token">// ["Truskawka", "Mango"]</span></code></pre> <p><strong>Usuwanie elementów przy użyciu pozycji w indeksie</strong></p> <pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> warzywa <span class="operator token">=</span> <span class="punctuation token">["</span><span class="string token">Kapusta"</span><span class="punctuation token">,</span> "<span class="string token">Rzepa</span><span class="punctuation token">",</span> "<span class="string token">Rzodkiew"</span><span class="punctuation token">,</span> "<span class="string token">Marchew"</span><span class="punctuation token">]</span><span class="punctuation token">;</span> console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(warzywa</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// </span><span class="punctuation token">[</span><span class="string token">"Kapusta"</span><span class="punctuation token">,</span> "<span class="string token">Rzepa"</span><span class="punctuation token">,</span> "<span class="string token">Rzodkiew"</span><span class="punctuation token">,</span> "<span class="string token">Marchew"</span><span class="punctuation token">]</span> <span class="keyword token">var</span> pos <span class="operator token">=</span> <span class="number token">1</span><span class="punctuation token">,</span> n <span class="operator token">=</span> <span class="number token">2</span><span class="punctuation token">;</span> <span class="keyword token">var</span> usunieteElementy <span class="operator token">=</span> warzywa<span class="punctuation token">.</span><span class="function token">splice</span><span class="punctuation token">(</span>pos<span class="punctuation token">,</span> n<span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// n oznacza liczbę elementów do usunięcia</span> <span class="comment token">// zaczynając od elementu na określonej pozycji(pos)</span> console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>warzywa<span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// ["Kapusta", "Marchew"] (początkowa tablica została zmieniona)</span> console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>usunieteElementy<span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// ["Rzepa", "Rzodkiew"]</span></code> </pre> <p><strong>Kopiowanie tablicy</strong></p> <pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> płytkaKopia <span class="operator token">=</span> owoce<span class="punctuation token">.</span><span class="function token">slice</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// tak się tworzy kopię</span> <span class="comment token">// ["Truskawka", "Mango"]</span></code> </pre> <h2 id="Tworzony_przez" name="Tworzony_przez">Składnia:</h2> <pre class="syntaxbox"><code>[<var>element0</var>, <var>element1</var>, ..., <var>elementN</var>] new Array(<var>element0</var>, <var>element1</var>[, ...[, <var>elementN</var>]]) new Array(długoscTablicy)</code></pre> <dl> <dt><code>elementN </code></dt> <dd>Lista wartości elementów tablicy. Tablica jest inicjowana z określonymi wartościami jako jej elementami. Długość tablicy (<code>length</code>) odpowiada liczbie jej elementów.</dd> <dt><code>długośćTablicy</code></dt> <dd>Początkowa długość tablicy. Aby móc przetwarzać wartości używamy własności długości tablicy <code>length</code>. Jeśli określona wartość nie jest liczbą, zostanie utworzona tablica jednoelementowa, a jej pierwszy element będzie posiadał ową wartość. Maksymalna długość tablicy wynosi 4,294,967,295 elementów.</dd> </dl> <h2 id="Opis" name="Opis">Opis</h2> <p>Tablica jest uporządkowanym zbiorem wartości przyporządkowanych ustalonej pojedynczej zmiennej.</p> <p>Poniższy przykład tworzy obiekt <code>Array</code> przy użyciu literału tablicy. Tablica <code>kawa</code> zawiera trzy elementy i ma długość (<code>length</code>) równą 3:</p> <pre class="brush: js">kawa = ["mocca", "cappucino", "zbożowa"] </pre> <p>Można utworzyć tzw. zwartą tablicę składającą się z dwóch lub więcej elementów, o początkowym indeksie 0, jeśli poda się początkowe wartości wszystkich elementów. Zwarta tablica to taka, w której każdy element posiada wartość. Poniższy kod tworzy zwartą tablicę o trzech elementach:</p> <pre class="brush: js">myArray = new Array("Hello", myVar, 3.14159) </pre> <h3 id="Dost.C4.99p_do_element.C3.B3w_tablicy" name="Dost.C4.99p_do_element.C3.B3w_tablicy">Dostęp do elementów tablicy</h3> <p>Do elementów tablicy odwołujemy się po ich liczbie porządkowej (zaczynając od zera). Przykładowo, jeśli mamy zdefiniowaną tablicę:</p> <pre class="brush: js">mojaTablica = new Array("Wiatr","Deszcz","Ogień") </pre> <p>Do pierwszego elementu odwołujemy się poprzez <code>mojaTablica[0]</code>, a do drugiego poprzez <code>mojaTablica[1]</code>.</p> <h3 id="Podawanie_pojedynczego_parametru" name="Podawanie_pojedynczego_parametru">Podawanie pojedynczego parametru</h3> <p>Jeśli konstruktor <code>Array</code> zostanie wywołany z pojedynczym parametrem liczbowym, parametr ten zostanie uznany za początkową długość tablicy. Poniższy kod tworzy tablicę pięciu elementów:</p> <pre class="brush: js">rodzajPlatnosci = new Array(5) </pre> <p>Zachowanie konstruktora <code>Array</code> zależy od tego, czy jedyny parametr jest liczbą.</p> <ul> <li>Jeśli jedyny parametr jest liczbą, konstruktor konwertuje tę liczbą do 32-bitowej liczby całkowitej bez znaku i tworzy tablicę o długości (liczbie elementów, <code>length</code>) równej tej liczbie. Tablica początkowo nie zawiera żadnych elementów, mimo że ma niezerową długość.</li> <li>Jeśli parametr ten nie jest liczbą, tworzona jest tablica o długości 1, a parametr ten staje się jej pierwszym elementem.</li> </ul> <p>Poniższy kod tworzy tablicę o długości 25, a następnie przypisuje wartości pierwszym trzem elementom:</p> <pre class="brush: js">rodzajeMuzyki = new Array(25) rodzajeMuzyki[0] = "R&B" rodzajeMuzyki[1] = "Blues" rodzajeMuzyki[2] = "Jazz" </pre> <h3 id="Po.C5.9Brednie_zwi.C4.99kszanie_d.C5.82ugo.C5.9Bci_tablicy" name="Po.C5.9Brednie_zwi.C4.99kszanie_d.C5.82ugo.C5.9Bci_tablicy">Pośrednie zwiększanie długości tablicy</h3> <p>Długość tablicy wzrasta samoczynnie, jeśli elementowi o indeksie wyższym niż obecna długość zostanie przypisana wartość. Poniższy kod tworzy tablicę o zerowej długości, a następnie przypisuje do niej 99. element. W wyniku długość tablicy zostaje zmieniona na 100.</p> <pre class="brush: js">kolory = new Array(); kolory[99] = "ciemnoniebieski"; </pre> <h3 id="Tworzenie_tablicy_z_wynik.C3.B3w_wyra.C5.BCenia_regularnego" name="Tworzenie_tablicy_z_wynik.C3.B3w_wyra.C5.BCenia_regularnego">Tworzenie tablicy z wyników wyrażenia regularnego</h3> <p>Wynik porównania pomiędzy regularnym wyrażeniem a łańcuchem znaków może utworzyć tablicę. Ta tablica ma własności i elementy, które przekazują informacje dotyczące porównania. Tablica jest wartością zwracaną przez <code>RegExp.exec</code>, <code>String.match</code> i <code>String.replace</code>. Aby zrozumieć te własności spójrz na poniższy przykład odwołując się do poniższej tabeli:</p> <pre class="brush: js">//Porównuje łańcuch znaków złożony z jednego 'd' następnie kilku 'b' a następnie jednego 'd' //Zapamiętuje porównane 'b' i następujące 'd' //Ignoruje wielkość liter mojRe=/d(b+)(d)/i; mojaTablica = mojRe.exec("cdbBdbsbz"); </pre> <p>Własności i elementy zwracają wartości z poniższej tabeli:</p> <table class="fullwidth-table"> <tbody> <tr> <td class="header">Własność/Element</td> <td class="header">Opis</td> <td class="header">Przykład</td> </tr> <tr> <td><code>input</code></td> <td>Wartość tylko-do-odczytu, opisująca oryginalny łańcuch znaków, do którego porównano wyrażenie regularne.</td> <td>cdbBdbsbz</td> </tr> <tr> <td><code>index</code></td> <td>Własność tylko-do-odczytu, będąca indeksem (zaczynając od 0) porównanego znaku w łańcuchu znaków.</td> <td>1</td> </tr> <tr> <td><code>[0]</code></td> <td>Element tylko-do-odczytu, zawierający ostatnio porównane znaki.</td> <td>dbBd</td> </tr> <tr> <td><code>[1], ... [n]</code></td> <td>Elementy tylko-do-odczytu, zawierające podobne podłańcuchy znaków, zawarte w wyrażeniu regularnym. Liczba możliwych podłańcuchów jest nieskończona.</td> <td>[1]: bB<br> [2]: d</td> </tr> </tbody> </table> <h2 id="Własności">Własności</h2> <dl> <dd> <dl> <dt>{{jsxref("Array.length")}}</dt> <dd>Odzwierciedla ilość elementów tablicy.</dd> <dt>{{jsxref("Array.prototype")}}</dt> <dd>Pozwala na dodawanie własności do wszystkich obiektów.</dd> </dl> </dd> </dl> <h2 id="Metody" name="Metody">Metody</h2> <dl> <dt>{{jsxref("Array.from()")}} {{experimental_inline}}</dt> <dd>Tworzy nową instancję <code>Array</code> z obiektu podobnego do tablicy lub iterowalnego.</dd> <dt>{{jsxref("Array.isArray()")}}</dt> <dd>Zwraca true, jeśli zmienna jest tablicą, jeśli nie false.</dd> <dt>{{jsxref("Array.observe()")}} {{experimental_inline}}</dt> <dd>Asynchronicznie obserwuje zmiany w tablicach, podobnie jak {{jsxref ("Object.observe ()")}} dla obiektów. Zapewnia strumień zmian w kolejności występowania.</dd> <dt>{{jsxref("Array.of()")}} {{experimental_inline}}</dt> <dd>Tworzy nową instancję Array ze zmienną liczbą argumentów, niezależnie od liczby lub rodzaju argumentów.</dd> </dl> <h2 id="Przykłady">Przykłady</h2> <h3 id="Przyk.C5.82ad_Tworzenie_tablicy" name="Przyk.C5.82ad:_Tworzenie_tablicy">Przykład: Tworzenie tablicy</h3> <p>Poniższy kod tworzy tablicę <code>msgArray</code> o długości 0, a następnie przypisuje wartości do <code>msgArray[0]</code> i <code>msgArray[99]</code>, zwiększając długość tablicy do 100.</p> <pre class="brush: js">msgArray = new Array() msgArray[0] = "Witaj," msgArray[99] = "świecie" // Poniższy warunek jest spełniony, // ponieważ zdefiniowano element msgArray[99]. if (msgArray.length == 100) myVar="Długość tablicy jest równa 100." </pre> <h3 id="Przyk.C5.82ad_Tworzenie_tablicy_dwuwymiarowej" name="Przyk.C5.82ad:_Tworzenie_tablicy_dwuwymiarowej">Przykład: Tworzenie tablicy dwuwymiarowej</h3> <p>Poniższy kod tworzy tablicę dwuwymiarową i przypisuje wyniki do zmiennej <code>myVar</code>.</p> <pre class="brush: js">myVar="Test tablicy wielowymiarowej; " a = new Array(4) for (i=0; i < 4; i++) { a[i] = new Array(4) for (j=0; j < 4; j++) { a[i][j] = "["+i+","+j+"]" } } for (i=0; i < 4; i++) { str = "Wiersz "+i+":" for (j=0; j < 4; j++) { str += a[i][j] } myVar += str +"; " } </pre> <p>Poniższy łańcuch znaków będzie przypisany do zmiennej <code>myVar</code> (linie zostały przełamane dla zwiększenia czytelności):</p> <pre>Test tablicy wielowymiarowej; Wiersz 0:[0,0][0,1][0,2][0,3]; Wiersz 1:[1,0][1,1][1,2][1,3]; Wiersz 2:[2,0][2,1][2,2][2,3]; Wiersz 3:[3,0][3,1][3,2][3,3]; </pre> <div class="noinclude"></div>