JavaScript - tablice Array
Tablice Array
Dobre praktyki
Iterowanie po tablicy
Aby uzyskać najlepszą wydajność zaleca się, aby zawsze używać zwykłej pętli for
i zbuforować właściwość length
. Korzystanie z pętli for in
na tablicy jest oznaką źle napisanego kodu, który jest podatny na błędy i ma słabą wydajność.
Nowsze przeglądarki już automatycznie optymalizują i buforują właściwość length
.
Konstruktor
W przypadku, gdy tylko jeden argument zostanie przekazany do kostruktora Array
i ten argument jest typu Number
, konstruktor zwróci nową dziwną tablicę z właściwością length
ustawioną na wartość przekazaną jako argument. Należy zauważyć, że tylko właściwość length
zostanie ustawiona w ten sposób. Rzeczywiste indeksy w tej tablicy nie zostaną zainicjalizowane.
[1, 2, 3]; // Rezultat: [1, 2, 3]
new Array(1, 2, 3); // Rezultat: [1, 2, 3]
[3]; // Rezultat: [3]
new Array(3); // Rezultat: []
new Array('3') // Rezultat: ['3']
Metody tablic Array
Array
on Mozilla Developer NetworkMapowanie Array.prototype.map()
Poniższy kod:
var max = 7;
var arr = Array.apply(null, {length: max}).map(Number.call, Number);
Jest odpowiednikiem:
var arr = [];
var max = 7;
for (var i = 0; i < max; i++) {
arr.push(i);
}
Metoda Array.prototype.map()
od Array.prototype.forEach()
różni się tym, że zwraca tablicę, a forEach()
nie zwraca nic (jest metodą wbudowaną w obiekt i działa na nim).
Iterowanie Array.prototype.forEach()
Jest to metoda wbudowana w obiekt tablicy i działa bezpośrednio na nim, nie zwracając nowej tablicy - obiektu. Metoda, która zwraca nowy obiekt - tablicę, to metoda map()
.
Akumulowanie Array.prototype.reduce()
Metoda redukuje tablice do pierwszego argumentu funkcji zwrotnej.
var sum = [1, 2, 3].reduce(function(total, num) { return total + num }, 0);
Filtrowanie Array.prototype.filter()
Metoda zwraca tablicę elementów pierwotnej tablicy, które spełniają warunek przekazany w funkcji.
Chociaż jeden prawdziwy Array.prototype.some()
Metoda ta zwraca prawdę, jeżeli chociaż jeden element tablicy spełnia warunek przekazany w funkcji zwrotnej. Zwraca fałsz, jeśli żaden z elementów tablicy nie spełnia warunku.
Wszystkie prawdziwe Array.prototype.every()
Metoda ta zwraca prawdę, jeśli wszystkie elementy tablicy spełniają warunek przekazany w funkcji zwrotnej. Jeśli chociaż jeden element nie spełnia warunku, zwracany jest fałsz.
ECMAScript 6+
Array.from
Tworzy tablicę z obiektu iterable lub podobnego do tablicy (np. string).
Array.smoosh
/ Array.flatten
Z wielu tablic tworzy jedną tablicę.