piątek,
JS: Zagnieżdżone pętle
Zagnieżdżone pętle są bardzo potężnym narzędziem, ale należy ich używać ostrożnie, ponieważ mogą one wpływać na wydajność, szczególnie przy dużych zbiorach danych lub skomplikowanych algorytmach. Często są wykorzystywane podczas wykonywania operacji na danych o strukturze wielowymiarowej jak tablice wielowymiarowe.
Przykłady wykorzystania zagnieżdżonych pętli
Przetwarzanie tablic wielowymiarowych
Zagnieżdżone pętle są idealne do iteracji przez tablice wielowymiarowe (tablice tablic).
Przykład: Wyświetlanie wszystkich elementów tablicy dwuwymiarowej.
let tablicaDwuwymiarowa = [[1, 2], [3, 4], [5, 6]];
for (let i = 0; i < tablicaDwuwymiarowa.length; i++) {
for (let j = 0; j < tablicaDwuwymiarowa[i].length; j++) {
console.log(tablicaDwuwymiarowa[i][j]);
}
}
Znajdowanie par liczb
Zagnieżdżonych pętli można użyć do wyszukania par liczb spełniających określone kryterium, na przykład sumujących się do konkretnej wartości.
Przykład: Znalezienie wszystkich par liczb z tablicy, które sumują się do 7.
let liczby = [1, 2, 3, 4, 5];
for (let i = 0; i < liczby.length; i++) {
for (let j = i + 1; j < liczby.length; j++) {
if (liczby[i] + liczby[j] === 7) {
console.log(`Para: ${liczby[i]}, ${liczby[j]}`);
}
}
}
Generowanie tabel
Zagnieżdżone pętle są często stosowane do tworzenia tabel, gdzie jedna pętla iteruje przez wiersze, a druga przez kolumny.
Przykład: Tworzenie prostej tabeli mnożenia dwóch liczb.
let tabela = '<table>';
for (let i = 1; i <= 5; i++) {
tabela += '<tr>';
for (let j = 1; j <= 5; j++) {
tabela += `<td>${i * j}</td>`;
}
tabela += '</tr>';
}
tabela += '</table>';
document.body.innerHTML = tabela;
Zagnieżdżanie pętli różnego typu
Czasami stosuje się zagnieżdżenie pętli różnych typów, na przykład pętli for
wewnątrz while
lub odwrotnie.
Przykład: Użycie zagnieżdżonej pętli for
wewnątrz pętli while
.
let i = 0;
while (i < 3) {
for (let j = 0; j < 3; j++) {
console.log(`i = ${i}, j = ${j}`);
}
i++;
}
Przetwarzanie złożonych struktur danych
Zagnieżdżone pętle mogą być wykorzystywane do przetwarzania bardziej złożonych struktur danych, takich jak obiekty zawierające tablice.
Przykład: Iteracja przez obiekt zawierający tablice.
let dane = {
pierwsza: [1, 2, 3],
druga: [4, 5, 6]
};
for (let klucz in dane) {
for (let i = 0; i < dane[klucz].length; i++) {
console.log(dane[klucz][i]);
}
}