Перейти до основного вмісту
Модуль 3 · Урок 4 із 412/32 у курсі~10 min
Модульні уроки (4/4)

Перегляд колекцій

Маніпулювання колекціями майже завжди означає ітерацію: проходження елементи по одному, роблячи щось для кожного. На цьому уроці ми подивіться на основні синтаксиси; в модулі функціональних масивів (карта / фільтрувати / зменшувати) ми навчимося писати їх більш декларативно.

for…of для масивів

Це цикл, який ви захочете використовувати майже завжди для повторення масиву: it витягує значення на кожному кроці.

JS
const colori = ['rosso', 'verde', 'blu'];

for (const c of colori) {
  console.log(c);
}
// 'rosso'
// 'verde'
// 'blu'

Якщо вам також потрібен індекс, використовуйте entries():

JS
for (const [i, c] of colori.entries()) {
  console.log(`${i}: ${c}`);
}
// '0: rosso', '1: verde', '2: blu'

for…in для об’єктів — з обережністю

for…in повторює ключі (рядки) об’єкта:

JS
const utente = { nome: 'Anna', eta: 28 };
for (const k in utente) {
  console.log(`${k} = ${utente[k]}`);
}

Object.keys / values / entries

Це надійний спосіб ітерації об’єкта. Вони повертають масиви, і так далі вони дуже добре поєднуються з for…of:

JS
const utente = { nome: 'Anna', eta: 28 };

Object.keys(utente); // ['nome', 'eta']
Object.values(utente); // ['Anna', 28]
Object.entries(utente); // [['nome', 'Anna'], ['eta', 28]]

for (const [k, v] of Object.entries(utente)) {
  console.log(`${k} → ${v}`);
}

Класичний for

«Стара школа» for все ще існує. Ви будете використовувати його рідко, але це корисно коли вам потрібен точний контроль над індексом (пропуск елементів, ітерація назад):

JS
for (let i = 0; i < colori.length; i++) {
  console.log(i, colori[i]);
}

// Backwards
for (let i = colori.length - 1; i >= 0; i--) {
  console.log(colori[i]);
}

Спробуйте

вправи#js.m3.l4.e1
Спроби: 0Завантаження…

Дано `numbers = [3, 5, 7]`, обчислити суму всіх елементів (15), повторюючи for...of. Останній вираз має обчислюватися як сума.

Завантаження редактора…
Показати підказку

for (const n чисел) { sum = sum + n; }

Рішення доступне після 3 спроб

Повторна вправа

вправи#js.m3.l4.e2
Спроби: 0Завантаження…

Враховуючи `prices = { mela: 0,4, pera: 0,55, banana: 0,3 }`, поверніть ЗАГАЛЬНУ КІЛЬКІСТЬ записів в об’єкті (3) за допомогою Object.keys.

Завантаження редактора…
Показати підказку

Object.keys(obj) повертає масив; .length вказує, скільки є ключів.

Рішення доступне після 3 спроб