Как развернуть массив js
4 года назад
Человек-Молекула
Чтобы развернуть массив с вложенными массивами в плоский массив, можно воспользоваться методом flat():
flat()
const numbers1 = [1, 2, [3, 4]]; numbers1.flat(); // [1, 2, 3, 4] // Метод принимает число указывающее глубину, на которую нужно обработать вложенные массивы const numbers2 = [1, 2, [3, 4, [5, 6]]]; numbers2.flat(2); // [1, 2, 3, 4, 5, 6] // Можно передать Infinity, чтобы на полную глубину обработать массивы const numbers3 = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]]; numbers3.flat(Infinity); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Ivan Gagarinov
Напишем собственную функцию, которая разворачивает массив с любым уровнем вложенности:
const flatten = (array) => { let flatNums = []; const map = array .map((item) => // перебираем массив Array.isArray(item) ? flatNums = [...flatNums, ...flatten(item)] : flatNums = [...flatNums, item]); // => ловкость spread-оператора и никакого мошенничества // если элемент массива не является массивом, отдаём его в массив flatNums в первозданном виде // иначе передаём его повторно в нашу функцию, используя spread return flatNums; } const numbers = [1, [1], [[1, 2, [7], 8], 90], 6]; console.log(flatten(numbers)); // => [1, 1, 1, 2, 7, 8, 90, 6]
Массив распакован на все уровни вложенности.
3 года назад
Виктория Аблаева
ООП на Javascript
Изучите архитектуру и принципы чистого кода на JS
Посмотреть →
Фронтенд-разработчик
Изучите HTML, CSS, JavaScript и React
СИКП на JS
Навык фундаментального программирования
Асинхронное программирование на JS
Навык работы с асинхронностью в JS
DDD на Javascript
Изучите ООП и DDD для создания масштабируемого кода
Полный список доступных курсов по разным направлениям
Похожие вопросы
Курсы по JavaScript
Хекслет
Направления
Профессии
Навыки
support@hexlet.io
t.me/hexlet_help_bot
RU
бесплатно по РФ
бесплатно по Москве