Треки
/
JavaScript
JavaScript
/
Вправи
/
Чари циклів Еліз
Чари циклів Еліз

Чари циклів Еліз

Навчальна вправа

Вступ

Коли ми працюємо з масивами, іноді потрібно виконати код для кожного значення в масиві. Це називається перебиранням масиву або циклом по ньому.

Тут ми розглянемо випадок, коли не потрібно змінювати масив у процесі перебирання. Якщо ж ідеться про перетворення масивів, натомість звернімося до Перетворень масивів.

Цикл for

Найпростіший спосіб перебрати масив - скористатися циклом for. Докладніше про це в Циклах for.

const numbers = [6.0221515, 10, 23];

for (let i = 0; i < numbers.length; i++) {
  console.log(numbers[i]);
}
// => 6.0221515
// => 10
// => 23

Цикл for...of

Коли ми хочемо працювати зі значенням безпосередньо на кожній ітерації і нам зовсім не потрібен індекс, можна скористатися циклом for...of.

Цикл for...of працює так само, як показаний вище базовий цикл for, але замість того, щоб мати справу з індексом як зі змінною в циклі, ми одразу отримуємо значення.

const numbers = [6.0221515, 10, 23];

// Because re-assigning number inside the loop will be very
// confusing, disallowing that via const is preferable.
for (const number of numbers) {
  console.log(number);
}
// => 6.0221515
// => 10
// => 23

Як і у звичайних циклах for, можна використати continue, щоб зупинити поточну ітерацію, і break, щоб повністю перервати виконання циклу.

Метод forEach

Кожен масив має метод forEach, який можна використати, щоб перебрати елементи масиву.

forEach приймає колбек як параметр. Функція-колбек викликається один раз для кожного елемента масиву. Поточний елемент, його індекс і весь масив передаються колбеку як аргументи. Часто використовуються лише поточний елемент або індекс.

const numbers = [6.0221515, 10, 23];

numbers.forEach((number, index) => console.log(number, index));
// => 6.0221515 0
// => 10 1
// => 23 2

Зупинити ітерацію після запуску циклу forEach неможливо. Інструкції break і continue у цьому контексті не існують.

Вказівки

Еліз лише починає свій шлях у магії, тож їй потрібно вміти аналізувати свою колоду багатьма різними способами. Щоб усе було просто, вона використовує лише картки зі значеннями від 1 до 10.

1. Визначити, скільки карток певного типу є в колоді

Еліз хоче знати, скільки карток певного типу є в її колоді.

Напишіть функцію cardTypeCheck, яка приймає два параметри: масив карток (колода Еліз) і тип картки, який потрібно порахувати.

Note

Функція має використовувати forEach і повертати кількість карток у колоді вказаного типу.

const cardType = 3;
cardTypeCheck([1, 2, 3, 4], cardType);
// => 1

2. Визначити, скільки в колоді непарних або парних карток

Для ще одного фокусу Еліз потрібно знати, скільки непарних або парних карток є в її колоді.

Реалізуйте функцію determineOddEvenCards, яка приймає два параметри: масив карток (колода Еліз) і булеве значення (англ. Boolean), де true означає «парне», а false - «непарне».

Ця функція має повернути одне число: кількість непарних або парних карток у колоді (залежно від значення другого аргументу).

Note

Щоб потренуватися, цього разу використайте цикл for...of у реалізації функції.

determineOddEvenCards([1, 2, 3, 1, 5, 6], true);
// => 2

determineOddEvenCards([1, 2, 3, 1, 5, 6], false);
// => 4
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
JavaScript Exercism

Час розпочати Чари циклів Еліз?

Зареєструйтеся на Exercism, щоб вивчати й опановувати JavaScript, а також 37 концепцій159 вправ та справжнє наставництво від людей, і все це безкоштовно.