Разбор задачи на разворачивание массива на JavaScript

preview_player
Показать описание
В данном видео я покажу вам как из многомерного массива JavaScript с помощью рекурсии сделать плоский массив. Код будет работать для массивов любого уровня вложенности!

Автор видео: Трепачёв Д.П.
Рекомендации по теме
Комментарии
Автор

единственный канал, где понимаю все непонятные темы

COUDAH
Автор

Дмитрий, благодарю! Круто объяснил! А данный пример под капотом поможет понять дебагер 🤗

jsb
Автор

Это лучшее объснение. Я только у Вас это понял. А расскажите, пожалуйста, как баланс скобок реализовать?

artur_olenberg
Автор

Спасибо большое. Понял навсегда!!!(для каждого выполнения свой массив который нужно

yamixa-gz
Автор

Дмитрий, добрый день!
Как раз застрял на этом задании, и в уроке по нему нет никакого упоминания метода concat. Пожалуйста, откорректируйте на сайте!

МишаАлександров-пг
Автор

А в es6 есть готовая функция решающая данную задачу? и если есть то на нативном уровне как она работает? тоже через рекурсию?

Heretic_Man
Автор

Конкретно в этой задаче не верно тайпить на object, поскольку object пропустит не только массив но и множество других разнообразных объектов, а также null, что в этом примере выкинет эксепшн...
Массив проверяется с помощью статического метода isArray объекта Array. Т.е. Array.isArray(elem)

ЮрийШ-жо
Автор

рекурсия в данном случае - использование вложенной функцией в качестве аргумента родительской функции, которая в свою очередь в качестве аргумента принимает в порядке вложенности и последовательно вложенные массивы до их исчерпания. Правильно я понял?

MsLodir
Автор

Добрый день! подскажите как вернуть сумму всех числовых элементов данного примера? желательно простым примером, только учусь)

МаксимЧ-кя
Автор

Спасибо. Хорошее обьяснение. А как можно с помощью рекурсии посчитать глубину данного массива? Был бы очень интересен разбор такой задачи.

yaroslavbozhak
Автор

У меня получилось вот так:

const expandArray = (arr) => {
let expanded = [];

for (let el of arr){
if (!Array.isArray(el)) {
expanded.push(el);
}
else {

}
}

return expanded;
};

StepanChuevYT