Lo he hecho por reducción pero quiero hacerlo por recursión y la consola imprime el error TypeError: arr[0].concat no es una función
let arrays = [[1, 2, 3], [4, 5], [6]]; // Your code here. // → [1, 2, 3, 4, 5, 6] let arr = arrays.reduce((acc, current, Index, arr) => { return acc.concat(current); }, []); console.log(arr); function flattening(arr) { if (arr.length <= 1) return arr; else return flattening(arr[0].concat(arr[1])); } console.log(flattening(arrays));Concatene el primer elemento de la matriz fuera de la llamada a flattening , y luego puede pasar el resto de los subarreglos a flattening . Mantenga la firma de la función de flattening igual donde sea que se llame: su argumento debe aceptar una matriz de matrices (pero flattening(arr[0].concat(arr[1])) da como resultado pasar solo una matriz plana, que no es Correcto).
const arrays = [[1, 2, 3], [4, 5], [6]]; function flattening(arr) { if (arr.length < 1) return []; else return arr[0].concat(flattening(arr.slice(1))); } console.log(flattening(arrays));o
const arrays = [[1, 2, 3], [4, 5], [6]]; function flattening([arr1, ...rest]) { return !rest.length ? arr1 : arr1.concat(flattening(rest)); } console.log(flattening(arrays));