Задачи по 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