Введение
В этом практическом занятии мы изучим концепцию сглаживания массива до заданной глубины с использованием JavaScript. Мы узнаем, как использовать методы рекурсии, reduce и concat для объединения элементов или массивов. В конце этого практического занятия вы сможете эффективно сглаживать массивы и манипулировать вложенными структурами данных в JavaScript.
Как сгладить массив с использованием JavaScript
Чтобы сгладить массив до заданной глубины в JavaScript, следуйте этим шагам:
- Откройте Терминал/SSH и введите
node, чтобы начать практиковаться в написании кода. - Используйте функцию
flattenс двумя аргументами:arr(массив, который нужно сгладить) иdepth(максимальное количество уровней вложенности, которые нужно сгладить). - Внутри функции
flattenиспользуйте рекурсию, чтобы уменьшитьdepthна1для каждого уровня глубины. - Используйте
Array.prototype.reduce()иArray.prototype.concat()для объединения элементов или массивов. - Добавьте базовый случай, когда
depthравно1, чтобы остановить рекурсию. - Игнорируйте второй аргумент,
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, чтобы улучшить свои навыки.