Using the flat() method (ES2019)
const arr = [1, 2, [3, 4, [5, 6]]];
const flattened = arr.flat(Infinity); // Flatten to any depth
console.log(flattened); // Output: [1, 2, 3, 4, 5, 6]
Using reduce() and concat()
function flatten(arr) {
let result = [];
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
result = result.concat(flatten(arr[i]));
} else {
result.push(arr[i]);
}
}
return result;
}
const arr = [1, 2, [3, 4, [5, 6]]];
const flattened = flatten(arr);
console.log(flattened); // Output: [1, 2, 3, 4, 5, 6]
Using a recursive function:
function flatten(arr) {
let result = [];
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
result = result.concat(flatten(arr[i]));
} else {
result.push(arr[i]);
}
}
return result;
}
const arr = [1, 2, [3, 4, [5, 6]]];
const flattened = flatten(arr);
console.log(flattened); // Output: [1, 2, 3, 4, 5, 6]