Obtener el error arr.reduce no es una función para arreglos multidimensionales; funciona bien para arreglos simples. ¿No está seguro de qué está pasando?
let arr = [4, [5, 7]] let sum = 0 const calculateSum = (arr) => { return arr.reduce(function(acc, currentVal) { const isEntryArray = Array.isArray(currentVal) if (isEntryArray) { acc= acc + calculateSum(isEntryArray) } else { acc = acc + currentVal } return acc }, 0) } console.log(calculateSum(arr)) console.log(sum) ```En lugar de usar una función recursiva, aplane la matriz y luego use reduce para calcular la suma.
const arr = [4, [5, 7, [12, [1, 2]]]]; function calculateSum(arr) { return arr.flat(Infinity).reduce(function (acc, c) { return acc + c; }, 0); } console.log(calculateSum(arr));Estás pasando un booleano, no una matriz cuando lo haces:
acc= acc + calculateSum(isEntryArray) // ^^^ from Array.isArray()Creo que lo que querías era pasar en la matriz secundaria actual
acc= acc + calculateSum(currentVal)