Back-end

Metody tablicowe w JavaScript

Metody tablicowe w JavaScript to specjalne funkcje, które pozwalają na wykonywanie różnych operacji na tablicach danych. Dzięki nim możemy m.in. sortować, filtrować.

05 cze 2022

Tablice w języku JavaScript to struktury danych zawierające zbiór wielu wartości w jednej zmiennej. Tablice są skalowalne i mogą zawierać mieszankę różnych typów danych. Tablice zawierają metody, które są funkcjami wbudowanymi w JavaScript, każda metoda dokonuje zmiany lub obliczenia w tablicy i oszczędza nam pisania typowych funkcji od zera. Elementy tablicy są ponumerowane za pomocą indeksów, zaczynając od 0, pierwszy element tablicy ma indeks 0, drugi ma indeks 1 itd. a ostatni element ma wartość właściwości length tablicy pomniejszoną o 1.

 

Tworzenie tablicy:

W JavaScript tablicę tworzymy za pomocą nawiasów kwadratowych. Wartości umieszczamy wewnątrz nawiasów, oddzielając je przecinkami.

const arr = [1, 2, 3];
const arr2 = ['string', 'string2', 'string3'];
const arr3 = [1, 'string', true];

 

Właściwość length:

Tablica udostępnia właściwość length, która określa ilość jej elementów.

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log9arr.lenght); //9

 

Właściwość length:

Do elementów tablicy odwołujemy się za pomocą nazwy tablicy i indeksu.

const arr = ['value1', 'value2', 'value3'];
console.log(arr[0]); // value1
console.log(arr[1]); // value2
console.log(arr[2]); // value3

 

Metody tablicowe:

at()

Przyjmuje wartość całkowitą i zwraca element pod tym indeksem, dopuszczając dodatnie i ujemne liczby całkowite. Ujemne liczby całkowite liczą wstecz od ostatniego elementu w tablicy.

const arr = ['value1', 'value2', 'value3'];
console.log(arr.at(0)); // value1
console.log(arr.at(-1)); // value3

 

push( )

Dodaje jeden lub więcej elementów na końcu tablicy.

const arr = ['value1', 'value2'];
arr.push('value3');
console.log(arr); // ['value1', 'value2', 'value3']

 

pop()

Usuwa ostatni element z końca tablicy i zwraca ten element.

const arr = ['value1', 'value2'];
const pop = arr.pop();
console.log(pop); // value2
console.log(arr); // ['value1']

 

shift( )

Usuwa pierwszy element z tablicy i zwraca ten element.

const arr = ['value1', 'value2'];
const shift = arr.shift();
console.log(shift); // value1
console.log(arr); // ['value2']

 

unshift( )

Dodaje jeden lub więcej elementów na początek tablicy

const arr = ['value1', 'value2'];
arr.unshift('value3');
console.log(arr); // ['value3', 'value1', 'value2']

 

reverse( )

Odwraca tablicę. Element o ostatnim indeksie będzie pierwszym, a element o indeksie 0 ostatnim.

const arr = [1, 2, 3, 4, 5];
arr.reverse()
console.log(arr); // [5,4,3,2,1]

 

indexOf( )

Zwraca indeks pierwszego wyszukiwanego elementu w tablicy lub -1, jeśli nie został znaleziony.

const arr = ['value1', 'value2', 'value3'];
console.log(arr.indexOf('value3')); // 2
console.log(arr.indexOf('value4')); // -1

 

findIndex( )

Zwraca indeks pierwszego elementu w tablicy, który pomyślnie spełnił warunki w funkcji testującej.

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(arr.findIndex(item => item > 5)); // 5
console.log(arr[5]); //6

 

find( )

Zwraca wartość pierwszego elementu w tablicy, który pomyślnie spełnił warunki w funkcji testującej.

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(arr.find(item => item > 5)); // 6

 

reduce( )

Wykonuje funkcję callback na każdym elemencie tablicy, w podanej kolejności, przekazując wartość zwracaną z obliczeń na poprzedzającym elemencie. 

Końcowym wynikiem jest pojedyncza wartość.

const arr = [10, 10, 10, 10, 10];
console.log(arr.reduce((acc, cur) => acc + cur)); // 50

 

slice( )

Zwraca nową tablicę z określonymi elementami. Pierwszy parametr wskazuje na początkowy indeks, a drugi na indeks końcowego elementu.

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(arr.slice(0, 5)); // [1, 2, 3, 4, 5]

 

splice()

Zmienia zawartość tablicy, usuwając lub zastępując istniejące elementy i/lub dodając nowe elementy. 

const arr = ['value1', 'value2', 'value3'];
arr.splice(0, 2);
console.log(arr); // ['value3']

 

map( )

Tworzy nową tablicę z wynikami wywołania podanej funkcji dla każdego elementu.

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(arr.map(item => item * 2)); // [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

 

filter( )

Tworzy nową tablicę zawierającą elementy, które spełniają warunek wewnątrz podanej funkcji.

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(arr.filter(item => item %2 === 0)); // [2, 4, 6, 8, 10]

 

sort( )

Metoda służy do sortowania elementów tablicy w porządku rosnącym lub malejącym.

const arr = ['c', 'b', 'e', 'a', 'd'];
console.log(arr.sort((a, b) => (a > b ? 1 : -1))); // ['a', 'b', 'c', 'd', 'e']
console.log(arr.sort((a, b) => (a > b ? -1 : 1))); // ['e', 'd', 'c', 'b', 'a']

 

every( )

Sprawdza każdy element w tablicy, który spełnia warunek, zwracając odpowiednio wartość true lub false.

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const arr2 = [2, 4, 6, 8, 10];
console.log(arr.every(item => item % 2 === 0)); // false
console.log(arr2.every(item => item % 2 === 0)); // true

 

some( )

Sprawdza, czy co najmniej jeden element w tablicy spełnia warunek, zwracając odpowiednio wartość true lub false.

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(arr.some(item => item >= 10)); // true
console.log(arr.some(item => item > 10)); // false

 

includes( )

Sprawdza, czy tablica zawiera element, który spełnia warunek, zwracając odpowiednio wartość true lub false.

const arr = ['value1', 'value2', 'value3'];
console.log(arr.includes('value1')); // true
console.log(arr.includes('value4')); // false

 

concat( )

Służy do łączenia dwóch lub więcej tablic i zwraca nową tablicę.

const arr = [1, 2, 3, 4, 5];
const arr2 = [6, 7, 8, 9, 10];
console.log(arr.concat(arr2)); // [1,2,3,4,5,6,7,8,9,10]

 

join( )

Zwraca nowy ciąg znaków, łącząc wszystkie elementy tablicy oddzielone określonym separatorem.

const arr = ['a', 'b', 'c', 'd', 'e'];
console.log(arr.join(' - '); // a - b - c - d - e

 

fill( )

Wypełnia elementy w tabli.

const arr = new Array(5);
console.log(arr); // [ <5 empty items> ]
console.log(arr.fill(10)); // [10, 10, 10, 10, 10]

 

forEach( )

Wykonuje podaną funkcję callback dla każdego elementu w tablicy.

const arr = ['value1', 'value2', 'value3'];
arr.forEach(value => {
     console.log(value);
});
// 'value1'
// 'value2'
// 'value3'

 

flat()

Tworzy nową tablicę ze wszystkich zagnieżdżonych tablic.

const arr = ['value1', 'value2', ['value3', ['value4', 'value5']]];
console.log(arr.flat(1));; // ['value1', 'value2', 'value3', ['value4', 'value5']
console.log(arr.flat(2));; // ['value1', 'value2', 'value3', 'value4', 'value5']

 

flatMap()

Zwraca nową tablicę utworzoną przez zastosowanie danej funkcji callback dla każdego elementu tablicy, a następnie spłaszczenie wyniku o jeden poziom.

const arr = [
     [1, 2, 3]'
     [4, 5, 6],
     [ 7, 8, 9]
];
console.log(arr.flatMap(item => item)); // [1,2,3,4,5,6,7,8,9]

FAQ

FAQ – najczęstsze pytania o metody tablicowe w JavaScript

  • Metody tablicowe to funkcje wbudowane w JavaScript, które wykonują operacje na tablicach – sortowanie, filtrowanie, modyfikację, iterowanie. Każda metoda dokonuje zmiany lub obliczenia w tablicy i oszczędza pisania typowych funkcji od zera. Tablice w JS to skalowalne struktury danych zawierające zbiór wartości w jednej zmiennej, mogące pomieścić mieszankę różnych typów danych (liczby, stringi, booleany, obiekty).

  • Cztery podstawowe metody. `push()` – dodaje element na końcu tablicy. `pop()` – usuwa ostatni element i go zwraca. `unshift()` – dodaje element na początku tablicy. `shift()` – usuwa pierwszy element i go zwraca. Dodatkowo `splice()` – zmienia zawartość tablicy, usuwając lub zastępując istniejące elementy oraz dodając nowe na dowolnej pozycji. `slice()` zwraca nową tablicę z określonymi elementami bez modyfikacji oryginału.

  • `map()` tworzy nową tablicę z wynikami wywołania funkcji dla każdego elementu (np. mnożenie każdej wartości razy 2). `filter()` tworzy nową tablicę zawierającą elementy spełniające warunek (np. tylko liczby parzyste). `reduce()` wykonuje funkcję callback na każdym elemencie, przekazując wartość zwracaną z poprzedniego obliczenia – wynikiem jest pojedyncza wartość (np. suma wszystkich elementów). To trzy najpotężniejsze metody funkcyjne.

  • Kilka metod wyszukiwania. `indexOf()` zwraca indeks pierwszego elementu lub -1, jeśli nie istnieje. `find()` zwraca wartość pierwszego elementu spełniającego warunek w funkcji testującej. `findIndex()` zwraca indeks elementu spełniającego warunek. `includes()` sprawdza, czy tablica zawiera element (true/false). `some()` – czy choć jeden element spełnia warunek. `every()` – czy wszystkie elementy spełniają warunek.

  • `sort()` sortuje elementy tablicy w porządku rosnącym lub malejącym, przyjmując funkcję porównującą jako argument: `(a, b) => a > b ? 1 : -1` dla rosnącego porządku. `reverse()` odwraca kolejność elementów – element o ostatnim indeksie staje się pierwszym, a pierwszy ostatnim. Obie metody modyfikują oryginalną tablicę. `concat()` służy do łączenia dwóch lub więcej tablic, zwracając nową tablicę bez modyfikacji oryginałów.

  • `flat()` tworzy nową tablicę ze wszystkich zagnieżdżonych tablic, spłaszczając je na określony poziom (np. `.flat(2)` dwa poziomy zagnieżdżenia). `flatMap()` zwraca nową tablicę utworzoną przez zastosowanie funkcji callback do każdego elementu i spłaszczenie wyniku o jeden poziom. To kombinacja `map()` i `flat(1)`. Obie metody są szczególnie przydatne przy pracy ze złożonymi strukturami danych zagnieżdżonych.

Blog

Powiązane artykuły

Czytaj więcej
Back-end

GraalVM: Rewolucja w świecie wirtualnych maszyn

GraalVM wprowadza przełom w świecie wirtualnych maszyn, oferując wyjątkową uniwersalność i wydajność. Zaprojektowany z myślą o współczesnych wymaganiach programistycznych, umożliwia uruchamianie kodu napisanego w wielu językach, w tym Java, JavaScript, Python, i innych, na jednej platformie.

Tomasz Kozon
06 lut 2024
Back-end

GRPC: kiedy i dlaczego warto używać?

gRPC to nowoczesny, otwartoźródłowy framework zdalnego wywoływania procedur, który zdobywa coraz szersze uznanie wśród deweloperów. Ten artykuł wyjaśni kluczowe przewagi gRPC, omówi sytuacje, w której jego zastosowanie może okazać się szczególnie korzystne i przedstawi istotne aspekty pracy z tą technologią.

Tomasz Kozon
14 gru 2023
Back-end

Headless CMS - lista popularnych technologii

W ostatnim czasie coraz więcej firm decyduje się na wykorzystanie technologii Headless CMS. Jest to spowodowane coraz większym zapotrzebowaniem na elastyczność i możliwość tworzenia aplikacji internetowych, które będą dostosowane do indywidualnych potrzeb użytkownika.

Tomasz Kozon
05 lip 2022
Back-end

Czym jest HTTP 301 i kiedy warto go użyć?

HTTP 301 to status kodu, który informuje przeglądarkę oraz wyszukiwarki, że zasób, którego dotyczy żądanie, został przeniesiony na stałe do nowego adresu URL. Oznacza to, że zasób już nie jest dostępny pod starym adresem URL, a wszystkie przyszłe żądania powinny kierować do nowego adresu.

Tomasz Kozon
19 paź 2022
Back-end

Co to jest Joomla i jakie daje możliwości?

Joomla to popularny system zarządzania treścią (CMS), który pozwala na łatwe tworzenie i zarządzanie witrynami internetowymi. Jest to otwarty i darmowy system, który jest dostępny dla każdego, kto chce stworzyć profesjonalną stronę internetową.

Tomasz Kozon
15 lip 2022