Задачи по JavaScript
October 30, 2023
Развернуть вложенный массив | Алгоритмические задачи по JavaScript
Три подхода для разворачивания массива любой вложенности:
Код
Мутирование
const arr = [1, [2, 3, [4, 5, 6]], 7] const flat = (arr) => { for (let i = 0; i < arr.length; i++) { if (Array.isArray(arr[i])) { arr.splice(i, 1, ...arr[i]) } } return arr } flat(arr) // [1, 2, 3, 4, 5, 6, 7]
Рекурсия
const arr = [1, [2, 3, [4, 5, 6]], 7] const flat = (arr) => { const cache = [] for (let i = 0; i < arr.length; i++) { if (Array.isArray(arr[i])) { cache.push(...flat(arr[i])) } else { cache.push(arr[i]) } } return cache } flat(arr) // [1, 2, 3, 4, 5, 6, 7]
Стэк
const arr = [1, [2, 3, [4, 5, 6]], 7] const flat = (arr) => { const stack = [...arr] const result = [] while(stack.length > 0) { const pop = stack.pop() if (Array.isArray(pop) { stack.unshift(...pop) } else { result.push(pop) } } return result } flat(arr) // [1, 2, 3, 4, 5, 6, 7]
Вопросы
Полезное
Задачи
October 30, 2023, 11:36
0 views
0 reactions
0 replies
0 reposts