Пошук уроків, статей та іншого контенту
Перетворіть масив довільної глибини вкладеності на плаский одновимірний масив.
Напишіть функцію solve(arr), яка приймає масив, що може містити вкладені масиви на будь-яку глибину, і повертає один плаский масив з усіма значеннями в тому самому порядку.
Приклади
Вхід: [1, [2, 3], [4, [5, 6]]]
Вихід: [1, 2, 3, 4, 5, 6]
Вхід: [[1, [2, [3, [4]]]]]
Вихід: [1, 2, 3, 4]
довільна глибина вкладеності
Ваше рішення
Підказки
Це природна задача для рекурсії (модуль «Функції»): базовий випадок — елемент не масив, рекурсивний — елемент масив.
Array.isArray(item) перевіряє, чи є елемент масивом, перш ніж рекурсивно його розгортати.
function solve(arr) {
return arr.reduce((flat, item) => {
return flat.concat(Array.isArray(item) ? solve(item) : item);
}, []);
}Рекурсивний виклик solve(item) для вкладених масивів зводить будь-яку глибину до плаского результату; базовий випадок — звичайне значення додається як є.