Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Плаский масив з багатовимірного». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**`arr.flat(depth)`** - вбудований метод масиву (ES2019+), який "сплющує" вкладені масиви до вказаної глибини; за замовчуванням розкриває один рівень вкладеності, а `flat(Infinity)` розкриває всі рівні незалежно від глибини. **Ключове:** щоб повністю сплющити масив, використовуй `arr.flat(Infinity)` - це коротко, безпечно і зрозуміло.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення## Приклад: ```javascript const arr = [1, [2, 3], [4, [5, 6]]]; ``` Хочемо отримати -> `[1, 2, 3, 4, 5, 6]` --- ## 1. Найпростіший спосіб - `.flat()` (ES2019+) ```javascript const flattened = arr.flat(); console.log(flattened); // [1, 2, 3, 4, [5, 6]] ``` За замовчуванням `flat()` "сплющує" **тільки один рівень вкладеності**. --- ## 2. Вказати глибину сплющення ```javascript const deeplyFlattened = arr.flat(2); console.log(deeplyFlattened); // [1, 2, 3, 4, 5, 6] ``` - `flat(1)` -> один рівень - `flat(2)` -> два рівні - `flat(Infinity)` -> повністю, незалежно від глибини --- ### Приклад: ```javascript const nested = [1, [2, [3, [4]]]]; console.log(nested.flat(Infinity)); // [1, 2, 3, 4] ``` Це **найзручніший і найсучасніший спосіб** "сплющити" масив. --- ## 3. Альтернатива - рекурсія (старий спосіб, до flat) ```javascript function flatten(arr) { return arr.reduce( (acc, val) => acc.concat(Array.isArray(val) ? flatten(val) : val), [] ); } console.log(flatten([1, [2, [3, 4]], 5])); // [1, 2, 3, 4, 5] ``` - Перевіряємо кожен елемент: якщо масив -> викликаємо `flatten` рекурсивно. - Якщо ні -> додаємо в результат. --- ## 4. Через `toString()` (тільки для чисел/рядків) ```javascript [1, [2, [3, 4]]].toString().split(','); // ["1", "2", "3", "4"] ``` Працює, **тільки якщо немає об'єктів або** `null`, тому що все перетворюється на рядки. --- ## 5. Через `flatMap()` (для комбінування + flatten) ```javascript const arr = [1, 2, [3, 4]]; const result = arr.flatMap(x => (Array.isArray(x) ? x : [x])); console.log(result); // [1, 2, 3, 4] ``` `flatMap()` одночасно **перетворює елементи і сплющує** один рівень. --- ## Коротко: | Спосіб | Працює з | Глибина | Мутує | Сучасність | |---|---|---|---|---| | `arr.flat()` | масив | 1 за замовчуванням | Ні | Так (ES2019+) | | `arr.flat(Infinity)` | багатовимірний | всі рівні | Ні | Так | | Рекурсія | масив | будь-які | Ні | Так (універсально) | | `flatMap()` | масив | 1 рівень | Ні | Так | | `toString().split()` | числа, рядки | всі рівні | Ні | обмежено | --- > **Підсумок:** > Щоб "сплющити" масив: > > ```javascript > const flat = arr.flat(Infinity); > ``` > > - це коротко, безпечно і зрозуміло.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.