Привет всем! Сегодня я буду обсуждать выравнивание массивов, которые всегда были сложными в JavaScript, но не сейчас! Я собираюсь объяснить, как использовать новые методы массива, представленные в ES2019 — flat()
Мы увидим несколько способов выравнивания массивов и даже массивов уровня глубины, используя Array.prototype.flat()
и рекурсивный способ.
Давайте начнем с нескольких примеров, чтобы понять сценарии.
Способы сгладить массив
- Использование
flat()
метода - Использование рекурсии
- Использование функции генератора
Использование метода Array.prototype.flat()
Метод flat()
создает новый массив со всеми элементами подмассива, объединенными в него рекурсивно до указанной глубины.
const hearts = ["💜",["💙"],["❤️🩹"]]; const flattened = heart.flat(); console.log(flattened); // ['💜', '💙', '❤️🩹']
Настройка
depth
параметр
flat()
по умолчанию сглаживает только один слой в глубину.
// Default 1 hearts.flat(); // ['💜', '💙', '❤️🩹'] // Same as hearts.flat(1); // ['💜', '💙', '❤️🩹']
Сведение вложенных массивов
Путем передачи параметра depth
Бесконечно вложенные массивы (бесконечность)
Сведение разреженных (пустых) массивов с помощью flat()
Метод flat()
удаляет пустые слоты в массивах:
Совместимость с браузером
Использование рекурсии
1. Использование функций
Array.prototype.concat()
иArray.prototype.reduce()
2. Итеративный способ
Использование функции генератора
Другой способ использования функции-генератора для выравнивания вложенных массивов. В следующем примере кода показано, как это реализовать с помощью метода Array.isArray().
Вот и все. Спасибо за прочтение ❤. Полный код вы можете найти на GitHub.
Скажи привет!Твиттер | Блог | ЛинкедИн | Гитхаб