Instruções
Criar uma Ferramenta de Achamento Profundo
Neste laboratório, você implementará um algoritmo de achatamento de array.
Achatar um array significa transformar um array aninhado de qualquer profundidade em um único array unidimensional. O processo extrai todos os elementos em ordem, desembrulhando apenas arrays. Outros tipos são mantidos inalterados.
Por exemplo:
| Original | Flattened |
| --- | --- |
|
[[1], [], [2, [3]]] | [1, 2, 3] |
| [1, {"foo": "bar"}, [2]] | [1, {"foo": "bar"}, 2] |
| ["baz", [1, 2], {}] | ["baz", 1, 2, {}] |
Objetivo: Cumprir as user stories abaixo e fazer todos os testes passarem para completar o laboratório.
Histórias de Usuário:
1. Você deve ter uma função chamada steamrollArray.
1. A função steamrollArray deve aceitar um argumento: um array aninhado.
1. A função deve achatar o array aninhado, considerando os diferentes níveis de aninhamento.
1. A solução não deve usar os métodos Array.prototype.flat() ou Array.prototype.flatMap().
1. As variáveis globais não devem ser utilizadas.
O que fazer:
Testes:
- Você deve ter uma função `steamrollArray`.
- `steamrollArray([[["a"]], [["b"]]])` deve retornar `["a", "b"]`.
- `steamrollArray([1, [2], [3, [[4]]]])` deve retornar `[1, 2, 3, 4]`.
- `steamrollArray([1, [], [3, [[4]]]])` deve retornar `[1, 3, 4]`.
- `steamrollArray([1, {}, [3, [[4]]]])` deve retornar `[1, {}, 3, 4]`.
- A solução não deve usar os métodos `Array.prototype.flat()` ou `Array.prototype.flatMap()`.
- Você não deve usar variáveis globais.
Preview