Вложенные циклы и 2D массивы
Часть раздела Логика и поток путешествия по JavaScript на Coddy — урок 8 из 65.
При работе с двумерными массивами мы часто используем вложенные циклы для итерации по каждой строке и каждому столбцу, что позволяет нам получать доступ к каждому элементу массива или изменять его.
Вот типичная структура вложенных циклов для двумерного массива:
const seats = [
[true, true, false],
[true, false, true]
];
for (let r = 0; r < seats.length; r++) {
// Внешний цикл итерирует по строкам
for (let c = 0; c < seats[r].length; c++) {
// Внутренний цикл итерирует по столбцам
// здесь можно получить доступ к seats[r][c]
}
}Внешний цикл перебирает строки, а внутренний цикл перебирает столбцы каждой строки. Таким образом, вы можете получить доступ к каждому элементу двумерного массива, используя array[r][c].
Задание
ЛегкоСоздайте функцию с именем countOccurrences, которая принимает двумерный массив строк matrix и строку target. Она должна возвращать количество раз, которое target встречается во всех строках и столбцах.
Шпаргалка
Используйте вложенные циклы для итерации по двумерным массивам: внешний цикл для строк и внутренний цикл для столбцов:
const seats = [
[true, true, false],
[true, false, true]
];
for (let r = 0; r < seats.length; r++) {
// Внешний цикл итерирует по строкам
for (let c = 0; c < seats[r].length; c++) {
// Внутренний цикл итерирует по столбцам
// Доступ к элементу через seats[r][c]
}
}Попробуйте сами
function countOccurrences(matrix, target) {
// TODO: Реализовать логику для подсчета количества вхождений 'target' в матрицу
}
// Не пишите ничего вне функцииВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и поток
1Строки в деталях
Основы работы со строкамиИтерация по строкамШаблонные литералыМетоды строкИтоги — String Weaver4JSON Часть 2
Итерация по JSONВложенный JSONОпциональная цепочка JSONПоверхностное и глубокое копированиеПовторение — Магазин велосипедовПовторение — Солнечная система7Система управления библиотекой
Обзор проектаДобавление книг10Управление системой фестиваля
Обзор проектаДобавление фильмов и площадок2Многомерные массивы
Основы 2D массивовДоступ к элементам 2D массиваВложенные циклы и 2D массивыПовторение: 2D массивыСложение и вычитание матрицСтупенчатые массивы3D массивы и далееРаспространенные паттерны 2D массивовПовторение: всё о массивах5Множества. Часть 1
Что такое множество?Итерация по множествамДобавление элементаУдаление элементаПроверка наличия элементаРазмер и проверка на пустотуКопирование и очисткаИтоги — Основы множеств8Интересные темы о массивах
Деструктуризация массивовСинтаксис Spread в массивахРазреженные массивыИтоги — Воркшоп по массивам3JSON. Часть 1
Что такое JSON?Проверка наличия ключаМетоды объектовОператор spread. Часть 1Оператор spread. Часть 2Удаление ключейПовторение: манипуляции с ключами JSON