1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
|
---
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>
|