Estoy tratando de devolver [1,2,{},3,4] sin usar flat() Mi código hasta ahora
function steamrollArray(arr) { let myArr= arr .join(" ") .replace(/[\s+\W+]/g," ") .replace(/\s+/g," ") .split(" ") return myArr .map((arrr) => parseInt(arrr,10)) } console.log(steamrollArray([1, {}, [3, [[4]]]]))Solo usa la recursividad. No hay necesidad de preocuparse por los tipos cuando no los cambia.
function cleanUp(arr, out=[]) { arr.forEach(item => { if (Array.isArray(item)) { cleanUp(item, out); } else { out.push(item); } }); return out; } console.log(cleanUp([1, {}, [3, [[4]]]]))Puede verificar si el valor es NaN y el valor predeterminado es cero
isNaN(arrr)?0:parseInt(arrr,10))
function steamrollArray(arr) { let myArr= arr .join(" ") .replace(/[\s+\W+]/g," ") .replace(/\s+/g," ") .split(" ") return myArr .map((arrr) => isNaN(arrr)?0:parseInt(arrr,10)) } console.log(steamrollArray([1, {}, [3, [[4]]]]))