Сглаживание массивов с использованием рекурсии в JavaScript

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии мы изучим концепцию сглаживания массива до заданной глубины с использованием JavaScript. Мы узнаем, как использовать методы рекурсии, reduce и concat для объединения элементов или массивов. В конце этого практического занятия вы сможете эффективно сглаживать массивы и манипулировать вложенными структурами данных в JavaScript.

Как сгладить массив с использованием JavaScript

Чтобы сгладить массив до заданной глубины в JavaScript, следуйте этим шагам:

  1. Откройте Терминал/SSH и введите node, чтобы начать практиковаться в написании кода.
  2. Используйте функцию flatten с двумя аргументами: arr (массив, который нужно сгладить) и depth (максимальное количество уровней вложенности, которые нужно сгладить).
  3. Внутри функции flatten используйте рекурсию, чтобы уменьшить depth на 1 для каждого уровня глубины.
  4. Используйте Array.prototype.reduce() и Array.prototype.concat() для объединения элементов или массивов.
  5. Добавьте базовый случай, когда depth равно 1, чтобы остановить рекурсию.
  6. Игнорируйте второй аргумент, depth, чтобы сгладить только до глубины 1 (однократное сглаживание).

Вот код для функции flatten:

const flatten = (arr, depth = 1) =>
  arr.reduce(
    (a, v) =>
      a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v),
    []
  );

Вы можете протестировать функцию flatten с помощью следующих примеров:

flatten([1, [2], 3, 4]); // [1, 2, 3, 4]
flatten([1, [2, [3, [4, 5], 6], 7], 8], 2); // [1, 2, 3, [4, 5], 6, 7, 8]

Резюме

Поздравляем! Вы завершили практическое занятие по сглаживанию массива. Вы можете практиковаться в других заданиях в LabEx, чтобы улучшить свои навыки.