---
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&amp;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 &lt; 4; i++) {
   a[i] = new Array(4)
   for (j=0; j &lt; 4; j++) {
      a[i][j] = "["+i+","+j+"]"
   }
}
for (i=0; i &lt; 4; i++) {
   str = "Wiersz "+i+":"
   for (j=0; j &lt; 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>