Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: recursion, nested

Как посчитать количество всех элементов массива с учётом вложенных массивов

Вопрос проверяет умение работать с вложенными структурами данных и понимать рекурсию.

Короткий ответ

Чтобы посчитать все элементы, включая вложенные массивы, нужно обойти структуру рекурсивно. Если элемент — массив, мы заходим внутрь и продолжаем подсчёт. Если это обычное значение, увеличиваем счётчик. Такой подход корректно учитывает любую глубину вложенности.

Длинный ответ

Общая идея решения

Массив может содержать:

  1. Примитивные значения

  2. Другие массивы

Поэтому задача сводится к обходу дерева.

Рекурсивный подход

function countItems(arr) {
  let count = 0;

  for (const item of arr) {
    if (Array.isArray(item)) {
      count += countItems(item);
    } else {
      count++;
    }
  }

  return count;
}

Пример использования

countItems([1, [2, 3], [4, [5]]]); // 5

Что здесь важно

  1. Проверка через Array.isArray

  2. Базовый случай — обычное значение

  3. Рекурсия естественно отражает структуру данных

Сложность

  • Временная сложность: O(n), где n — общее количество элементов

  • Память: зависит от глубины вложенности (call stack)

Вывод

Рекурсия — самый читаемый и универсальный способ посчитать элементы во вложенных массивах.

Уровень

  • Рейтинг:

    4

  • Сложность:

    7

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#recursion

#nested

Подпишись на React Developer в телеграм