function flattenArray(arr) {
let result = [];
arr.forEach((item) => {
if (Array.isArray(item)) {
result.concat(flattenArray(item));
} else {
result.push(item);
}
});
return result;
}
console.log(flattenArray([1, [2, [3, [4]]]]));
Array.prototype.concat() doesn’t mutate the original array, it returns a new array. To fix the issue, we need to assign the return value of result.concat(flattenArray(item)) back to result.
function flattenArray(arr) {
let result = [];
arr.forEach((item) => {
if (Array.isArray(item)) {
result = result.concat(flattenArray(item));
} else {
result.push(item);
}
});
return result;
}
console.log(flattenArray([1, [2, [3, [4]]]]));