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

Data Definition Language: Co to jest i jak go używać?

Data Definition Language (DDL) to część języka SQL, który jest nieodłącznym elementem w strukturze danych. W naszym przewodniku omówimy dokładniej, czym jest DDL, jakie posiada składniki oraz na przykładach pokażemy jego praktyczne zastosowanie. Zapraszamy do lektury!

Tomasz Kozon
05 paź 2023
Back-end

Data Manipulation Language: Klucz do zrozumienia manipulacji danymi

Technologia ewoluuje w zawrotnym tempie, a sukces w świecie IT zależy od ciągłego rozwijania umiejętności. Jednym z kluczy do opanowania dziedziny baz danych jest zrozumienie języka manipulacji danymi (DML). DML pozwala na efektywne zarządzanie danymi przechowywanymi w relacyjnych bazach danych. Ta wiedza jest nieoceniona zarówno dla nowicjuszy jak i doświadczonych programistów.

Tomasz Kozon
12 sty 2024
Back-end

Architektura mikroserwisowa: Przyszłość tworzenia i zarządzania aplikacjami

Architektura mikroserwisowa staje się nowym standardem w budowie i zarządzaniu aplikacjami. Pozwalając na podzielenie całego systemu na mniejsze, niezależne serwisy, ułatwia naszą pracę, podnosi wydajność i skalowalność. Czy to oznacza, że mikroserwisy są przyszłością IT? Przyjrzyjmy się bliżej tej koncepcji.

Tomasz Kozon
13 lip 2023
Back-end

BDD: Innowacyjny sposób na skuteczne testowanie Twojej aplikacji

Behavior Driven Development, czyli BDD, to nie tylko innowacyjne podejście do testowania aplikacji, ale przede wszystkim skuteczne narzędzie poprawiające komunikację między zespołem a działem biznesu. Przekonaj się, jak BDD pomaga precyzyjnie i zrozumiale definiować oczekiwania względem aplikacji.

Tomasz Kozon
8 min czyt.24 sie 2023