Ejemplos de recursividad, Arreglo unidimensional

Ejemplos de recursividad

Escribir una función recursiva que reciba un arreglo con elementos que pueden ser otros arreglos y retorne un arreglo un arreglo de una sola dimensión.

function descomponerArreglo(arr) {
    let o = [];

    for (const v of arr) {
        if (Array.isArray(v)) {
            o = o.concat(descomponerArreglo(v));
        } else {
            o.push(v);
        }
    }

    return o;
}