Achatar o array aninhado

Você recebe um array aninhado, como este:

[1, [2, 3], [4, [5, 6]], [7, [8, [9, 0]]]]

Retorne um novo array unidimensional que contenha todos os valores que não sejam arrays, na mesma ordem da esquerda para a direita. Os arrays podem estar aninhados em qualquer profundidade.

Exemplos

Program.flatten(new Object[] { new Object[] { 6, 7 }, new Object[] { 4, 5 } }); // ➞ new Object[] { 6, 7, 4, 5 }

Program.flatten(new Object[] { new Object[] { new Object[] { new Object[] { new Object[] { new Object[] { "cat" } } } } } }); // ➞ new Object[] { "cat" }

Program.flatten(new Object[] { new Object[] { 3, new Object[] { 5, 6 } }, new Object[] { 9, 3 } }); // ➞ new Object[] { 3, 5, 6, 9, 3 }

Program.flatten(new Object[] { 1, new Object[] { 2, 3 }, new Object[] { 4, new Object[] { 5, 6 } }, new Object[] { 7, new Object[] { 8, new Object[] { 9, 0 } } } }); // ➞ new Object[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }

Notas

  • Preserve a ordem de todos os valores.